ModelState.AddModelError不显示错误

时间:2013-08-07 10:00:07

标签: asp.net-mvc asp.net-mvc-4

我的ModelState.AddModelError不显示错误。 我检查了用户名并在重复时显示错误。 当我使用断点时,我看到ModelState.AddModelError被填充,它只是没有显示错误消息。

我的代码:

控制器:

    [HttpPost]
    public ActionResult Register(tbl_User model)
    {
        if (ModelState.IsValid)
        {
            if (MyClass.IsUserNameDuplicate(model.username) == true)
            {
 this.ModelState.AddModelError("username", "the username is duplicate");

                return View(model);
            }
            else
            {
                MyClass.creatUser(model.username, model.password_User, model.nam);
            }
        }

        return View(model);

    }

查看:

         @Html.ValidationSummary(true)
         @Html.ValidationMessageFor(model => model.username) 
        @Html.TextBoxFor(m => m.username, new {@class = "input", @placeholder = "*enter user name" })

1 个答案:

答案 0 :(得分:1)

在检查AddModelError之前,您需要致电ModelState.IsValid。我在控制器中进行了多次自定义验证

[HttpPost]
public ActionResult Register(tbl_User model)
{
    if (MyClass.IsUserNameDuplicate(model.username) == true)
    {
        this.ModelState.AddModelError("username", "the username is duplicate");
    }

    if (!ModelState.IsValid)
    {
        return View(model);
    }
    else
    {
        MyClass.creatUser(model.username, model.password_User, model.nam);
    }

    return View(model);
}