我正在使用Identity 2.0,我想知道当我尝试注册已注册的用户时如何自定义错误消息。 以下信息是我收到的信息:
韩国社交协会
答案 0 :(得分:7)
我有类似的问题,this SO question和this blog帮助了我。
将这些直接应用于您的问题,您可以采用两种方式。解决此特定问题的快速方法,以及允许您在将来修改任何其他身份错误的更具参与性的方法。
1。)快速方式: - 在Controllers / AccountController.cs下修改AddErrors(IdentityResult结果)方法。改变这个:
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。尽管Brian的博客明确地描述了如何实现替换UserValidator方法,但Josh在同一问题中的答案是相同的。
这是我遵循的方法,它有效。作为奖励,他不断更新,最后一次更改使其与3月28日的Identity 2.0兼容。