今天我注意到脚手架剃刀视图中的奇怪行为,其中IEnumerable<Item>
模型。
即使模型是IEnumerable
,它也会对表格标题使用单项表示法
@model IEnumerable<Item>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.Genre)
</th>
...
<th>
@Html.DisplayNameFor(model => model.Price)
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr> ... </tr>
}
...
它本身&#39;打开包装&#39;收集到单个项目,如果它如此聪明,它还能做什么?
答案 0 :(得分:2)
正在使用此重载:
public static MvcHtmlString DisplayNameFor<TModel, TValue>(
this HtmlHelper<IEnumerable<TModel>> html,
Expression<Func<TModel, TValue>> expression
)
(见MSDN)
您可以在IEnumerable<T>
上使用扩展方法,而lambda只使用T
来获取属性。