【发布时间】:2016-04-01 23:16:37
【问题描述】:
我有一个 MVC5 视图来允许用户创建对象。我为新的获取请求生成的创建视图绑定到强类型模型。该模型包含我填充的 SelectListItems,因此用户有一些列表可供选择。用户做出一些选择并保存,它会回到我的控制器中的发布操作,并很好地保存记录。 但是,如果有验证错误——比如一个空字段——我想在我的帖子 Create ActionResult 中处理它。所以我写了一个验证器,我检查了一切,我在我的模型状态中加载了错误消息。 然后我打电话:
return View (m)
我想返回与其中的模型相同的视图,以便用户看到他们已经输入的内容,并且错误显示在摘要部分中,他们可以修复这些并继续前进。 问题是分页符是因为我之前填写的 SelectListItems 中没有任何项目。我可以看到何时调用 post ActionResult 我的模型 m 具有创建新模型所需的所有值记录,但 SelectLists 为空。
如何将错误页面显示给用户?
[HttpPost]
public ActionResult Create(CreateNewProjectModel m, UserInfoCookie userCookie, string redirect, string submitButton)
{
var mValidateResults = ProjectDetailsValidator.Validate(m);
if (!mValidateResults.IsValid)
{
//loop over each error
foreach (var e in mValidateResults.Errors)
{
ModelState.AddModelError(e.PropertyName, e.ErrorMessage);
}
return View(m);}}
【问题讨论】: