2011-08-16 2 views
0

나는 현재 단지 내 앨범 클래스의 생성 볼 수 있습니다시간을 절약하기 위해 Html.EditorFor를 내 모델 용으로 어떻게 만듭니 까?

@model MvcApplication1.Models.AlbumViewModel 

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 

@using (Html.BeginForm()) { 
    @Html.ValidationSummary(true) 
    <fieldset> 
     <legend>AlbumViewModel</legend> 

     <p> 
      @Html.LabelFor(model => model.GenreId) 
      @Html.DropDownListFor(x => x.GenreId, new SelectList(Model.Genres, "GenreId", "name")) 
     </p> 

     <p> 
      @Html.LabelFor(model => model.ArtistId) 
      @Html.DropDownListFor(x => x.ArtistId, new SelectList(Model.Artists, "ArtistId", "Name")) 
     </p> 


     <p> 
      <input type="submit" value="Create" /> 
     </p> 
    </fieldset> 
} 

<div> 
    @Html.ActionLink("Back to List", "Index") 
</div> 

나는 그것이 미래에 시간을 절약하기 위해 모두 생성 및 편집을 위해 EditorFor를 사용하는 규칙 있다고 들었다.

그래서 내 생각은 다음과 같이보고 끝낼 것 :

@model MvcApplication1.Models.AlbumViewModel 

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 

@Html.EditorForModel 

<div> 
    @Html.ActionLink("Back to List", "Index") 
</div> 

이가 맞습니까? 이것을 어떻게 선언하고 내 솔루션에 써야합니까?

편집 : 나는 내 주요 계정이이

등록 /보기 :

@model Models.RegisterViewModel 

@{ 
    ViewBag.Title = "Register"; 
} 

<h2>Register</h2> 

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 

@using (Html.BeginForm()) { 
    @Html.ValidationSummary(true) 
    <fieldset> 
     <legend>RegisterViewModel</legend> 

     @Html.EditorFor(model => model.RegisterModel) 
     @Html.EditorFor(model => model.Cities) 
     @Html.EditorFor(model => model.Countries) 
     <p> 
      <input type="submit" value="Create" /> 
     </p> 
    </fieldset> 
} 

그리고 내 EditorTemplate에서 :

enter image description here

@model Fooer.WebUI.Models.RegisterModel 

THIS IS A TEST. 

그러나 그렇지 않습니다 그 더미 텍스트를 전혀 렌더링하지 않습니다. 모델의 기본 컨트롤을 렌더링합니다.

답변

2

~/Views/Shared/EditorTemplates/에 파일로 부분을 추가합니다.

브래드 윌슨 (Brad Wilson)의 블로그 게시물 Custom object templates에 관한 모든 정보가 있습니다.

+0

이것은 예상대로 작동하지 않습니다. 편집을 참조하십시오. –

-1
는 다음과 같이 당신의보기를 변경

: 모델의

@model MvcApplication1.Models.AlbumViewModel 

@{ 
    ViewBag.Title = "Index"; 
} 

<h2>Index</h2> 

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> 
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script> 

@Html.EditorForModel() 

<div> 
    @Html.ActionLink("Back to List", "Index") 
</div> 

이 출력됩니다 모든 속성을. 그 사용에 대한 위대한 게시물 here

관련 문제