1
@foreach (var item in Model) {
    <tr>
        <td>
            @Html.DisplayFor(modelItem => item.Title)
        </td>
    </tr>
...

我在过去对这个问题的回答中发现了相互矛盾的回答。据我了解,左侧参数 modelItem 是未使用的参数。但是这个问题的公认答案MVC HTML Helpers and Lambda Expressions说 left 参数用于“描述” item.Title 的值。那么它是使用还是未使用?

modelItem 的预期类型是 IEnumerable 并且 item.Title 是一个字符串。我只是不明白如何描述另一个。然而,如果 modelItem 没有描述 item.Title,那么首先拥有 lambda 表达式树的目的是什么?

4

2 回答 2

0

我正在Programming Entity Framework DbContext由 Julie Lerman 准备,它说第一个参数是名称,第二个是值。这样,在更复杂的查询中,您将引用名称而不仅仅是使用值。

于 2014-03-06T01:28:43.573 回答
0

modelItem 的预期类型是 IEnumerable 并且 item.Title 是一个字符串。

不正确。您在强类型视图中使用的HtmlHelper实例使用由@model指令分配的模型。简单地Html.xxxFor在 for 循环中使用不会更改对辅助方法TModel的调用中的泛型参数。xxxFor

您会注意到辅助方法是HtmlHelper类的扩展方法。因此,无论您决定将Html.xxxFor方法的使用嵌套在什么中。推断的类型将是封闭视图的类型。

于 2014-03-06T01:14:40.160 回答