[英]MVC Dropdown List isn't binding to the model
我正在尝试建立一个简单的下拉列表,但似乎无法将其绑定到模型。 我正在使用Asp.Net MVC和nhibernate。
我的下拉列表声明如下:
<%= Html.DropDownListFor(model => model.Project, (IEnumerable<SelectListItem>)ViewData["Projects"], " -- Select -- ", new { name = "Project" })%>
我像这样设置选择列表:
ViewData["Projects"] = new SelectList(projectRepository.GetAll(), "EntityGUID", "Name", editEntity.Project);
这似乎将选择列表绑定到Dropdown上,但未设置SelectedValue。 它显示为默认--选择-
同样,当我保存此数据时,下拉列表不会绑定到模型,我必须像这样手动设置对象以保存它:
entity.Project = projectRepository.GetById(new Guid(Request["Project"].ToString()));
我相信我已经采取了正确的措施使该项目直接绑定到我的模型。 我在这里缺少什么吗?
Rod,非常感谢您的宝贵时间
我的天哪,我发现了问题........
我花了3天的时间转向:
<%= Html.DropDownListFor(model => model.Aspect, (IEnumerable<SelectListItem>)ViewData["AspectTypes"])%>
变成:
<%= Html.DropDownListFor(model => model.Aspect.EntityGUID, (IEnumerable<SelectListItem>)ViewData["AspectTypes"])%>
model.Aspect **。EntityGUID **我必须将下拉列表绑定到对象guid,而不是对象本身。 Doh ....我感到很痛苦,需要做很多工作。
谢谢你的时间。
这只是预感,因为您的代码对我来说看起来不错,但我认为在定义SelectList
时不需要包括SelectList
参数。 设置该字段可能会干扰正常的事物流(覆盖模型绑定),并且我从未绑定DropDownList
并设置了SelectList
的SelectedValue
。
尝试删除它,然后看看它如何进行。
SelectList(projectRepository.GetAll(), "EntityGUID", "Name");
不久前我也问了一个有关如何在MVC2中实现DropDownList
问题,您可能会觉得有用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.