繁体   English   中英

ASP.NET MVC 3服务器端验证因ViewModel中的下拉列表集合而失败

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM