gpt4 book ai didi

c# - ASP.NET MVC。如何使用 DisplayNameFor 来创建表格标题和正文?

转载 作者:太空狗 更新时间:2023-10-29 21:04:09 26 4
gpt4 key购买 nike

如何使用 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>

我应该在问号中写什么?

最佳答案

DisplayNameFor()有一个 overload接受 IEnumerable<T>所以它只需要是

<td>@Html.DisplayNameFor(m => m.prop1)</td>

请注意,这仅适用于模型为 Enumerable<T> 的情况(在你的情况下 @model IEnumerable<Item> )。

但如果模型是一个包含属性为 IEnumerable<T> 的对象,则将不起作用

例如下面的就不行了

<td>@Html.DisplayNameFor(m => m.MyCollection.prop1)</td>

它需要是

<td>@Html.DisplayNameFor(m => m.MyCollection.FirstOrDefault().prop1)</td>

即使集合中不包含任何项目,它也能正常工作。

旁注:在某些情况下,您最初可能会收到 Razor 错误,但您可以忽略它。一旦您运行该应用程序,该错误就会消失。

关于c# - ASP.NET MVC。如何使用 DisplayNameFor 来创建表格标题和正文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39029941/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com