-2

我的 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" })
4

1 回答 1

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);
}
于 2013-08-07T13:27:04.847 回答