我正在尝试为表头定义一个 displayTemplate。(我认为真实姓名应该是 displayNameTemplate,但据我所知,没有办法定义自定义文件夹“DisplayNameTemplates”,您可以在其中定义 html 标记,就像对 DisplayTemplate 一样......)
这是我的IEnumerable<dataContainers>
模板 ( >Shared/DisplayTemplates/dataContainers.cshtml
)
@model IEnumerable<Ubiway.Intranet.Ubiweb.Models.dataContainer>
<table class="table">
<tr>
@Html.Partial("DisplayTemplates/dataContainers/header", Model) @* Works *@
@Html.DisplayForModel("dataContainers/header") @* Does not work *@
@Html.DisplayFor(model => model, "dataContainers/header") @*Does not work*@
@Html.DisplayFor(model => Model, "dataContainers/header") @*Does not work*@
<th>Actions</th>
</tr>
@foreach (var item in Model)
{
<tr>
@Html.DisplayFor(model => item, "dataContainers/row") @*Works*@
<td>
@Html.ActionLink("Edit", "Edit", new { id = item.id }) |
@Html.ActionLink("Details", "Details", new { id = item.id }) |
@Html.ActionLink("Delete", "Delete", new { id = item.id })
</td>
</tr>
}
</table>
我已经展示了我的解决方案,但我仍然找不到为什么 DisplayForModel 扩展不适用于我的模板...
注意在row
foreach 循环中工作正常的模板的使用......
这是我的模板>Shared/DisplayTemplates/dataContainers/header.cshtml
:
@model IEnumerable<Ubiway.Intranet.Ubiweb.Models.dataContainer>
<th>
@Html.DisplayNameFor(model => model.id)
</th>
<th>
@Html.DisplayNameFor(model => model.name)
</th>