我有以下類別:顯示模板仿製藥 - 查看沒有發現
public class Widget
{
public string Name { get; set; }
}
GenericModel
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)
我有一個名爲GenericModel.cshtml在瀏覽文件/共享/ DisplayTemplate文件夾:
@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」。這似乎有點破解,有沒有更簡單的方法來找到這個顯示模板而不訴諸於此?
您的視圖必須具有相同的名稱作爲您的控制器動作,除非另行指定。 – user1477388
@ user1477388我的看法確實如此 - 這是我指的DisplayTemplate。 –
你有沒有試過玩UIHint屬性?如果使用UIHint指向您的模板裝飾Data屬性,會發生什麼情況? –