【发布时间】:2014-09-04 12:13:59
【问题描述】:
我正在尝试在表格中显示对象列表。我可以遍历每个单独的项目以找到它的值(使用 for 循环或 DisplayTemplate),但是我如何随意选择一个来显示整个组的标题。
这是一个简化的例子:
型号:
public class ClientViewModel
{
public int Id { get; set; }
public List<ClientDetail> Details { get; set; }
}
public class ClientDetail
{
[Display(Name="Client Number")]
public int ClientNumber { get; set; }
[Display(Name = "Client Forname")]
public string Forname { get; set; }
[Display(Name = "Client Surname")]
public string Surname { get; set; }
}
查看
@model MyApp.ViewModel.ClientViewModel
@{ var dummyDetail = Model.Details.FirstOrDefault(); }
<table>
<thead>
<tr>
<th>@Html.DisplayNameFor(model => dummyDetail.ClientNumber)</th>
<th>@Html.DisplayNameFor(model => dummyDetail.Forname)</th>
<th>@Html.DisplayNameFor(model => dummyDetail.Surname)</th>
</tr>
</thead>
<tbody>
@for (int i = 0; i < Model.Details.Count; i++)
{
<tr>
<td>@Html.DisplayFor(model => model.Details[i].ClientNumber)</td>
<td>@Html.DisplayFor(model => model.Details[i].Forname)</td>
<td>@Html.DisplayFor(model => model.Details[i].Surname)</td>
</tr>
}
</tbody>
</table>
注意:我正在使用 var dummyDetail = Model.Details.FirstOrDefault(); 获取可以在 DisplayNameFor 中访问其属性的单个项目。
- 访问这些标头的最佳方法是什么?
- 如果集合为空,这会中断吗?
- 我应该用硬编码的纯文本标签替换它们吗?
【问题讨论】: