我在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。
有人可以帮忙吗?
答案 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)" })