2011-08-16 8 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/にファイルとしてパーシャルを追加します。

ブラッドウィルソン氏のブログ記事の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

関連する問題