我正在使用.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已在使用"信息?
答案 0 :(得分:2)
在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