1

所以我在我的 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 />
}

我在这里做错了什么,还是没有做我应该做的事情?

4

1 回答 1

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 - 输入错误:)

于 2012-06-24T18:51:44.943 回答