升级到ASP.NET MVC RC1后,Html.DropDownList不再有效

时间:2009-01-30 16:14:39

标签: .net asp.net-mvc

我在ASP.NET MVC Beta上运行的Web应用程序中有以下代码:

<%= Html.DropDownList("Instances", new { style="width:270px;", onchange = "UpdateReport(this)" }) %>

其中“Instances”是存储在ViewData中的SelectList,如下所示:

ViewData["Instances"] = new SelectList(instanceList, "Id", "ClientName", report.SelectedId);

升级到MVC RC1后,我在DropDownList中收到以下错误:

CS1928:'System.Web.Mvc.HtmlHelper'不包含'DropDownList'的定义和最佳扩展方法重载'System.Web.Mvc.Html.SelectExtensions.DropDownList(System.Web.Mvc.HtmlHelper, string,string)'有一些无效的参数

我已将我的引用更新为指向正确的(新)Mvc Dll,并且我还将来自codeplex的Microsoft.Web.Mvc.dll更新为RC MVC Futures dll。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:4)

试试这个:

<%= Html.DropDownList("Instances", (SelectList)ViewData["Instances"], new { style="width:270px;", onchange = "UpdateReport(this)" }) %>

答案 1 :(得分:1)

Html.DropDownList签名在RC中有所改变。第二个参数现在是SelectList对象,而不是属性对象。您只需更改视图代码即可调用正确的重载。

答案 2 :(得分:0)

这实际上是这两个答案的组合......

第二个参数必须是SelectList,但是解决您遇到的特定错误需要您根据ericness'答案将ViewData对象转换为SelectList:

<%= Html.DropDownList("Instances", (SelectList)ViewData["Instances"], new { style="width:270px;", onchange = "UpdateReport(this)" })