绑定下拉?

时间:2009-11-09 09:43:58

标签: asp.net-mvc drop-down-menu

在aspx页面中,我在绑定下拉列表时遇到此错误

  

无法投射类型的对象   键入'System.Web.Mvc.SelectList'   'System.Collections.Generic.IList`1 [System.Web.Mvc.SelectListItem]'。

我写道:

<p>
  <label for="categoryId">Category:</label>
  <%= Html.DropDownList("categoryId", (IList<SelectListItem>)ViewData["categoryId"])%>
  <%= Html.ValidationMessage("categoryId", "*")%>
</p>

请告诉我正确的写作方式。

感谢

里茨

2 个答案:

答案 0 :(得分:1)

这是一个很好的例子,说明你想要完成的任务:

How to bind IList with MVC Dropdownlist box

看起来你必须添加一些代码隐藏代码来构建兼容的列表类型。

答案 1 :(得分:1)

用于生成viewdata [“categoryId”]的控制器操作中的代码是什么,这是我通常在操作代码中执行的操作:

ArrayList categoryList=New ArrayList;
       foreach (category c In YourcategoryCollection)
{          categoryList.Add(New With {.Item = c.categoryName, .value = c.categoryID})
}
    Viewdata("categoryId")=New SelectList(categoryList, "Value", "Item", itemToEdit.categoryID)}

然后在您看来,您只需要:

 <%= Html.DropDownList("categoryId", ViewData["categoryId"])%>