ASP.NET获得值的DropDownList
问题描述:
我在用的这个数据填充一个下拉列表:ASP.NET获得值的DropDownList
return _lamb_database.Lambs().Select(lamb => new SelectListItem
{
Text = lamb.LambName,
Value = lamb.LambID.ToString()
}).ToList();
我然后使用视图模型通过这个列表的视图。在视图我显示在视图模型中的项目使用此代码:
@Html.DropDownListFor(m => m.SelectedLamb, Model.Facilities, "Select Lamb")
SelectedLamb是一个整数,给出了在数据库中的羊肉独特的IDENTIFER。我想回传羊肉的唯一标识符而不是羊肉的名字。你可以在上面看到,我试图让这个列表设置SelectedLamb。
我收到此错误:
The ViewData item that has the key 'SelectedLamb' is of type 'System.Int32' but must be of type 'IEnumerable'.
有谁知道我能得到这个工作?现在我已经花了这么长时间了。
答
提交后需要重新设置Facilities
属性。
[HttpPost]
public ActionResult YourActionName(YourModel model)
{
model.Facilities = ..; // set again
return View(model);
}
+1
非常感谢,这工作! – user3412625 2014-08-28 09:43:19
是'Model.Facilities' typeof'SelectList'? – 2014-08-28 09:26:10
它是IEnumerable类型的 –
user3412625
2014-08-28 09:35:03
你确定你已经初始化它吗? ('MyModel.Facilities = theFuntionAbove;') - 如果该属性为null或模型为null,则可能发生此消息 – 2014-08-28 09:36:24