Asp.net mvc 5 MVC 5标识和错误消息

Asp.net mvc 5 MVC 5标识和错误消息,asp.net-mvc-5,asp.net-identity,Asp.net Mvc 5,Asp.net Identity,我正在使用Identity 2.0,我想知道当我尝试注册一个已经注册的用户时,如何自定义错误消息。 以下是我收到的信息: 名称xxxxx已被采用 Tks.我也遇到了类似的问题,并帮助了我 把这些直接应用到你的问题上,你可以用两种方法来解决。这是一种解决此特定问题的快速方法,也是一种更复杂的方法,允许您在将来修改任何其他身份错误 1.)捷径: -在Controllers/AccountController.cs下修改AddErrors(IdentityResult结果)方法。更改此项:

我正在使用Identity 2.0,我想知道当我尝试注册一个已经注册的用户时,如何自定义错误消息。 以下是我收到的信息:

  • 名称xxxxx已被采用
Tks.

我也遇到了类似的问题,并帮助了我

把这些直接应用到你的问题上,你可以用两种方法来解决。这是一种解决此特定问题的快速方法,也是一种更复杂的方法,允许您在将来修改任何其他身份错误

1.)捷径: -在Controllers/AccountController.cs下修改AddErrors(IdentityResult结果)方法。更改此项:

    private void AddErrors(IdentityResult result)
    {
        foreach (var error in result.Errors)
        {
            ModelState.AddModelError("", error);
        }
    }
为此: 同样,这个代码是我提到的问题中提出的答案。我自己没用过这个,但看起来应该有用

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);
        }
    }
}
  • 一个更易于维护和扩展的解决方案是。Josh在同一个问题上的回答是一样的,尽管Brian的博客明确描述了如何实现替换UserValidator方法

    这是我遵循的方法,它很有效。作为奖励,他不断更新它,最后一次更改使其与3月28日的Identity 2.0兼容


  • 我曾经尝试过这两个技巧,但都没有成功,但是,现在我尝试了另一种方法来实现第二个,效果很好。我刚刚创建了一个新类(CustomUserValidator),在AccountController上的注册操作中,我设置了UserManager.UserValidator=new CustomUserValidator(UserManager);在CreateAsync调用之前。