SelectExtensions.DropDownListFor woes

时间:2014-07-23 16:07:43

标签: c# asp.net-mvc razor

我正在尝试使用SelectExtensions.DropDownListFor方法,但是interweb上的示例很少,而且stackoverflow上只有一个或两个。我无法让我的下拉工作。

以下是我的.cshtml摘录:

@SelectExtensions.DropDownListFor( m => m.LegalEntity.Address.Country.SelectedCountry,
    new SelectList( Model.LegalEntity.Address.Country.Countries, 
    "CountryId", "Name",
    Model.LegalEntity.Address.Country.Countries.First().CountryId))

我一直在关注stackoverflow帖子(MVC3 DropDownListFor - a simple example?)的格式,但我无法让它发挥作用。 IntelliSense和编译器都抱怨模型中不存在LegalEntity,但它确实存在。 IntelliSense无法在第一行为Func提供任何建议。

我做错了什么?

标记

1 个答案:

答案 0 :(得分:1)

DropDownListFor是一种扩展方法,SelectExtensions是一个静态类。

你应该使用

@Html.DropDownListFor(m => m...)

其中Html将是扩展方法的this HtmlHelper<>...第一个参数。

如果你真的想保留你的配方,你应该

@SelectExtensions.DropDownListFor(Html, m => m.LegalEntity....)

但是使用扩展方法,您不需要静态类名,但可以使用

<the first parameter with the this keyword of the method>.TheMethod(secondParameter, thirdParameter, etc.)