[英]ASP.NET MVC 3 Server Side Validation Fails with Dropdown list collections in ViewModel
我有一个视图,该视图的类型严格到视图模型,该视图模型包含通过页面上的表单提交的数据的属性,以及用于填充我的下拉列表的集合。
在发布后,我检查模型状态是否有效,如果不是,我返回视图,但是我得到一个空引用,因为视图模型不再包含下拉列表的集合值。
在再次返回表单视图之前,是否需要重新填充viewmodel的下拉列表集合?
控制器方式:
[HttpPost]
public ActionResult Create(UserProfileCreateViewModel viewModel)
{
if (ModelState.IsValid)
{
try
{
// TODO: Add insert logic here
return RedirectToAction("Index");
}
catch
{
return View();
}
}
return View();
}
是的,你必须。 Http是无状态协议,ASP.NET MVC没有回发或视图状态的概念。
如果ModelState.IsValid
设置为false
则应该重新创建适当的对象并将其发送回去。
是的,您需要补充水分。 绑定到模型的唯一内容是在表单发布中提交的内容。 因此,您可能会从下拉列表中而不是整个下拉列表中获得所选项目的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.