私は次のクラスを持っています:
public class Widget
{
public string Name { get; set; }
}
汎用モデル
public class GenericModel<T>
{
public List<T> Data { get; set; }
}
私のコントローラーのアクションは次のとおりです。
public ActionResult Simple()
{
var model = new GenericModel<Widget>()
{
Data = new List<Widget>
{
new Widget {Name = "a"}
}
};
return View(model);
}
そして私の見解は次のとおりです。
@model MyApp.GenericModel<MyApp.Widget>
@{
ViewBag.Title = "Simple";
}
<h2>Simple</h2>
@Html.DisplayFor(m=>m)
Views/Shared/DisplayTemplate フォルダーに GenericModel.cshtml というファイルがあります。
@model MyApp.GenericModel<MyApp.Widget>
<ul>
@for (int i = 0; i < Model.Data.Count; i++ )
{
<li>
@Html.EditorFor(m=> Model.Data[i].Name)
</li>
}
</ul>
このビューは見つかりません。モデルのタイプの名前を出力すると、「GenericModel 1". Seeing that, I renamed my template "GenericModel
1.cshtml」が表示されます。これはハックのように思えます。これに頼らずにこの表示テンプレートを見つける簡単な方法はありますか?