我正在使用.Net MVC和Identity开发一个应用程序。我正在创建这样的新用户:
result = await UserManager.CreateAsync(user, model.Password);
当电子邮件地址已在使用时,我收到一条错误消息。我想自定义该错误消息。
RegisterModel中的我的电子邮件属性如下:
[Required(ErrorMessage = "Email adresinizi girmediniz.")]
[DataType(DataType.EmailAddress)]
[EmailAddress(ErrorMessage = "Email adresi hatalı.")]
[Display(Name = "Email")]
public string Email { get; set; }
如何自定义"电子邮件xxx已在使用"消息?
在POST方法中,为属性添加ModelState
错误并返回视图。
if(EmailNotAvailable)
{
ModelState.AddModelError("Email", "Your custom error message");
return View(model);
}
您还可以使用[Remote]
属性在客户端上执行此验证。
[Remote("IsEmailAvailable", "YourControllerName", ErrorMessage = "Your custom error message")]
public string Email { get; set; }
并实现控制器方法,该控制器方法检查电子邮件是否可用
public JsonResult IsEmailAvailable(string Email)
{
if(EmailNotAvailable)
{
return Json(false, JsonRequestBehavior.AllowGet);
// or to override the error message you defined in the RemoteAttribute
return Json("Another custom message, JsonRequestBehavior.AllowGet);
}
else
{
return Json(true, JsonRequestBehavior.AllowGet);
}
}
有关实现RemoteAttribute
的更多详细信息,请参阅本文