【发布时间】:2016-12-26 01:51:47
【问题描述】:
如何使用DisplayNameFor()获取属性显示名称来构建表头。例如:
@model IEnumerable<Item>
<table class="table">
<thead>
<tr>
<td>@Html.DisplayNameFor(? => ?.prop1)</td>
<td>@Html.DisplayNameFor(? => ?.prop2)</td>
<td>@Html.DisplayNameFor(? => ?.prop3)</td>
</tr>
</thead>
<tbody>
@foreach (Item item in Model) {
<tr>
<td>@Html.DisplayFor(i => item.prop1)</td>
<td>@Html.DisplayFor(i => item.prop2)</td>
<td>@Html.DisplayFor(i => item.prop3)</td>
</tr>
}
</tbody>
</table>
问号应该写什么?
【问题讨论】:
-
使用
LabelFor()是不合适的(它会生成一个旨在与表单控件关联的标签,但您有很多)。使用@Html.DisplayNameFor(m => m.prop1) -
谢谢@StephenMuecke,我已经编辑了问题。
-
那么你现在有什么问题? (参见我之前评论中的代码)
-
是的,我知道。试试看 :) (
DisplayNameFor()有一个 overload 代表IEnumerable<T>) -
@WillRay,该链接中的答案是正确且必要的,因为
model不是IEnumerable<T>(它的模型包含IEnumerable<T>的属性)-我正在尝试找到一个合适的骗子,但如果没有,我会添加一个答案
标签: c# asp.net asp.net-mvc razor displayfor