0

我正在尝试为表头定义一个 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 扩展不适用于我的模板...

注意在rowforeach 循环中工作正常的模板的使用......

这是我的模板>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>
4

0 回答 0