Header 模板编辑器行

Header row for editorfor template

我在 MVC4 中有一个如下所示的视图:

 @model List<Home.Models.Model>
@{
ViewBag.Title = "DPR";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@using (Html.BeginForm("AgendaNotes", "Home", FormMethod.Post, new    { @id = "formDPR"}))
{
<table style="font-size:xx-small">
    <thead>
        <tr>
            <th>Name</th>
            <th>DOD ID</th>
            <th>Last Review</th>
            <th>Include?</th>
            <th>Reason</th>
            <th>Notes</th>
        </tr>
    </thead>
</table>
<div style="background-color:white">
    @Html.EditorForModel()
</div>
<div>

</div>
}

而 model.cshtml 只是一行中的一些字段。我不想把 headers 放在那一行,因为它们在列表中重复了很多次。有没有一种简单的方法可以在模板编辑器中为模型的行创建 header?

我是这样做的:

 <table style="font-size:xx-small" class="table_body">
        <thead>
            <tr>
                <th>Name</th>
                <th>DOD ID</th>
                <th>Last Review</th>
                <th>Include?</th>
                <th>Reason</th>
                <th>Notes</th>
            </tr>
        </thead>
        @for (var i = 0; i < Model.Count; i++)
        {
            <tr>
                @Html.EditorFor(m=>Model[i])
            </tr>
        }
    </table>

并且在 model.cshtml 中,它简化了 TD 元素中每个字段的一些字段。

不能 100% 确定我理解正确。在视图中创建 table header,然后在 for each

中调用 EditorTemplate
@using (Html.BeginForm("AgendaNotes", "Home", FormMethod.Post, new { @id = "formDPR" }))
{
  <table style="font-size:xx-small">
    <thead>
        <tr>
            <th>Name</th>
            <th>DOD ID</th>
            <th>Last Review</th>
            <th>Include?</th>
            <th>Reason</th>
            <th>Notes</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model.Details)
        {
            @testTemplate(item)
        }
    </tbody>
  </table>
}

然后将编辑器模板更改为仅一行,例如

@helper testTemplate(Details detail)
{
  <tr>
    <td>@detail.Propery1</td>
    <td>@detail.Propery2</td>
  </tr>
}

我使用内联助手只是为了说明我的意思。现在你应该有一个 table 和一个 header 和很多行