ASP.NET MVC 3远程验证设置自定义错误消息

Jop*_*per 9 asp.net-mvc-3

有没有办法根据MVC 3.0远程验证中的逻辑设置不同的错误

public ActionResult IsUserEmailExists(string email)
        {
            bool isExists = service.IsUserExists(email);

            if(isExists )
             //Set error message
             return Json(!isExists, JsonRequestBehavior.AllowGet);
            else if(something)
              //another logic
              //Set errror message
              return Json(something, JsonRequestBehavior.AllowGet);             
        }
Run Code Online (Sandbox Code Playgroud)

默认情况下,仅使用属性声明中的ErrorMessage值进行远程验证

[Remote("IsUserEmailExists", "Account", ErrorMessage = "User with such email already exists")]
Run Code Online (Sandbox Code Playgroud)

有没有办法改变这种行为?

Dar*_*rov 28

您可以返回错误消息而不是布尔值:

return Json("Some custom error message", JsonRequestBehavior.AllowGet);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,模型将被视为无效(与您返回时相同false)和用作错误消息的字符串.