从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表达式!
答案 0 :(得分:1)
DisplayFor
是HtmlHelper
类的extension method
。这意味着您在MSDN文档中看到的第一个参数是HtmlHelper类,有两种方法可以调用此扩展方法。
在HtmlHelper
类的实例上,在这种情况下,您可以省略第一个参数(首选方法):
@Html.DisplayFor(x => x.SomeProperty)
或者作为一种普通的静态方法:
@DisplayExtensions.DisplayFor(Html, x => x.SomeProperty)
基本上,扩展方法允许您在现有类上添加方法,而无需修改这些类的代码,然后将这些新方法用作一等公民。