如何自定义从UserManager返回的错误消息



我正在使用.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 的更多详细信息,请参阅本文

相关内容

  • 没有找到相关文章

最新更新