DisplayFor方法根据MSDN至少需要2个参数,但它似乎仅适用于1个参数

时间:2017-02-19 05:31:59

标签: asp.net lambda

从MSDN教程学习ASP.Net MVC时,我看到DisplayFor方法用作:@Html.DisplayFor(x => x.SomeProperty)

或:@Html.DisplayFor(modelItem => item.Releasedate)

但是文档似乎至少指定了2个参数(here)。

还有一个问题:由于modelItem的{​​{1}}参数从未在=>的右侧使用,我尝试将modelItem替换为(),但获得的红色波浪线表示{ {1}}:

"Type args for method cannot be inferred from usage..."

我主要担心的是文档显示DisplayFor方法需要至少2个参数,但是无论我在教程中看到它们,它们只有1个参数,那是一个lambda表达式!

1 个答案:

答案 0 :(得分:1)

DisplayForHtmlHelper类的extension method。这意味着您在MSDN文档中看到的第一个参数是HtmlHelper类,有两种方法可以调用此扩展方法。

HtmlHelper类的实例上,在这种情况下,您可以省略第一个参数(首选方法):

 @Html.DisplayFor(x => x.SomeProperty)

或者作为一种普通的静态方法:

 @DisplayExtensions.DisplayFor(Html, x => x.SomeProperty)

基本上,扩展方法允许您在现有类上添加方法,而无需修改这些类的代码,然后将这些新方法用作一等公民。