所以我在Razor视图中访问模型错误时遇到了一些麻烦。
在我的控制器中,当ModelState
无效或某些其他自定义验证未通过时,我会添加如下模型错误:ModelState.AddModelError("ModelState", "Please fill out all required fields.");
然后我返回一个像这样的重定向:
return RedirectToAction("Register", "Account");
看起来相当简单,但是,当我尝试访问模型状态错误,循环遍历它们,并将它们作为单独的span
添加到我的视图中时,我什么都得不到显示。这是视图中的代码:
@foreach (var error in ViewData.ModelState.Values.SelectMany(modelState => modelState.Errors))
{
<span>@error.ErrorMessage</span>
<br />
}
我在这里做错了什么,或者不做我应该做的事情?
答案 0 :(得分:2)
您不应该重定向到操作,只需返回相同的视图:
///
/// Displays form to edit model
///
public ActionResult Edit(int id)
{
MyModelClass m = new MyModelClass();
return View(m);
}
[HttpPost]
public ActionResult Edit(MyModelClass m)
{
if( !ModelState.IsValid )
{
// Got error, return view
return View(m);
}
return RedirectToAction("/mymodel/success");
}
已更新:ModelState.IsValid - 错误输入:)