我正在学习 ASP.NET MVC 4。一些默认模板视图包含如下内容:
@model IEnumerable<SomeModel>
...
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.Property1)
</td>
<td>
@Html.DisplayFor(modelItem => item.Property2)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { id=item.Id }) |
@Html.ActionLink("Details", "Details", new { id=item.Id }) |
@Html.ActionLink("Delete", "Delete", new { id=item.Id })
</td>
</tr>
}
我的理解是DisplayFor
接受一个表达式,其中输入参数是视图的模型,返回值是任何对象,并为返回的对象找到适当的 DisplayTemplate。
基于此,我可以看到为什么DisplayFor(modelItem => item.Property1)
有效,但感觉不是正确的选择。如果我根本不使用modelItem
参数,为什么要使用DisplayFor
?有没有类似的方法GetDisplayTemplate(item.Property1)
?