【发布时间】:2014-11-24 10:33:49
【问题描述】:
我正在使用 Identity 2.0,我想知道在尝试注册已注册用户时如何自定义错误消息。 以下消息是我收到的:
- 姓名 xxxxx 已被占用。
Tks.
【问题讨论】:
标签: asp.net-mvc-5 asp.net-identity
我正在使用 Identity 2.0,我想知道在尝试注册已注册用户时如何自定义错误消息。 以下消息是我收到的:
Tks.
【问题讨论】:
标签: asp.net-mvc-5 asp.net-identity
我遇到了类似的问题,this SO question 和 this blog 帮助了我。
将这些直接应用于您的问题,您可以通过两种方式进行。解决此特定问题的快速方法,以及允许您在将来修改任何其他身份错误的更复杂的方法。
1.) 快捷方式: - 在 Controllers/AccountController.cs 下修改 AddErrors(IdentityResult result) 方法。改变这个:
private void AddErrors(IdentityResult result)
{
foreach (var error in result.Errors)
{
ModelState.AddModelError("", error);
}
}
对此: 同样,此代码是Marius 在我引用的问题中提出的答案。我自己没有使用它,但看起来它应该可以工作。
private void AddErrors(IdentityResult result)
{
foreach (var error in result.Errors)
{
if (error.StartsWith("Name"))
{
var NameToEmail= Regex.Replace(error,"Name","Email");
ModelState.AddModelError("", NameToEmail);
}
else
{
ModelState.AddModelError("", error);
}
}
}
更可维护和可扩展的解决方案是here on Brian Lachniet's blog。 Josh 在同一个问题中的回答是一样的,尽管 Brian 的博客明确描述了如何实现替换 UserValidator 方法。
这是我遵循的方法,它有效。作为奖励,他不断更新它,最后一次更改使其与 Identity 2.0 兼容,截至 3 月 28 日。
【讨论】: