我有这个函数返回类型IEnumerable<SelectListItem>
。
public IEnumerable<SelectListItem> GetItems()
{
IEnumerable<SelectListItem> results = null;
results =*(some logic)*
return results;
}
我尝试使用
将其绑定到视图中的下拉列表 <% foreach (IEnumerable<SelectListItem> schdItem in Model.GetItems())
{%>
<%= Html.DropDownList("xxx", schdItem)%>
<%} %>
但它打破了错误信息
Unable to cast object of type 'System.Web.Mvc.SelectListItem' to type 'System.Collections.Generic.IEnumerable`1[System.Web.Mvc.SelectListItem]'.
我该如何解决这个问题?
根据asawyer的评论我将其修改为
<%= Html.DropDownList("xxx", Model.GetScheduleItems())%>
现在有效!
答案 0 :(得分:1)
不需要循环,就是这个。
<%= Html.DropDownList("xxx", Model.GetItems())%>
我会在模型上创建SelectList
属性而不是getter方法。
<%= Html.DropDownList("xxx", Model.MySelectList)%>
答案 1 :(得分:1)
<%= Html.DropDownList("xxx", Model.GetItems())%>
虽然这是一种可怕的方式。相反,您应该使用Html.DropDownListFor,例如:
<%= Html.DropDownListFor(Model.SelectedItem, Model.Items) %>
其中Model.SelectedItem是项的类型,Model.Items是返回SelectListItems集合的属性。