2011-08-16 13 views
0

我目前只擁有CREATE VIEW我的專輯類:如何爲我的模型創建一個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