显示来自不同列表的多个表上的列标题

时间:2017-03-02 17:04:21

标签: c# asp.net-mvc razor

我在ASP.NET MVC中有一个视图,它使用2个单独的列表访问视图模型。我遇到的问题是从列表中访问列标题以在每个数据集上方显示它们。 foreach语句准确显示数据,但目前我也在列标题上使用foreach语句(显示名称)。我需要修改此语句以访问列表(NotesList)并仅在td语句中显示的数据集上方显示它们的一次迭代。感谢您的反馈。视图如下。

@model Risk.ViewModel.ListCatViewModel
....
<table class="table">
    @foreach (var item in Model.NotesList)
    {
        <tr>
            <th>@Html.DisplayNameFor(modelItem => item.Category)</th>
            <th>@Html.DisplayNameFor(modelItem => item.CountOfLoans)</th>
            ....
        </tr>
    }
    @foreach (var item in Model.NotesList)
    {
        <tr>
            <td>@Html.DisplayFor(modelItem => item.Category)</td>
            <td>@Html.DisplayFor(modelItem => item.CountOfLoans)</td>
            ....
        </tr>
    }
</table>

1 个答案:

答案 0 :(得分:1)

您可以使用

创建<th>元素
<th>@Html.DisplayNameFor(m => m.NotesList.FirstOrDefault().Category)</th>
<th>@Html.DisplayNameFor(m => m.NotesList.FirstOrDefault().CountOfLoans)</th>
....

请注意,即使FirstOrDefault()返回null也是如此(因为该集合为空),因为HtmlHelper使用对象ModelMetadata

中的值

附注:建议您将标题元素包含在<thead>