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

标签 asp.net-mvc-5 asp.net-identity

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

  • 姓名 xxxxx 已被占用。

谢谢。

最佳答案

我遇到了类似的问题,this SO questionthis 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);
        }
    }
}
  1. 一个更易于维护和扩展的解决方案是 here on Brian Lachniet's blog . Josh 在同一个问题中的回答是一回事,尽管 Brian 的博客明确描述了如何实现替换 UserValidator 方法。

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

关于asp.net-mvc-5 - MVC 5 标识和错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26109965/

相关文章:

c# - 无法显示从 Controller 到 View 的 LINQ 查询输出值

c# - ASP.NET Identity 在登录时对每个页面请求执行数据库查询

database - ASP.NET MVC5 - 将用户保留在 Oracle 数据库中

ASP.NET MVC 5 Web.config : "FormsAuthenticationModule" or "FormsAuthentication"

c# - 即使在使用 Identity ASP.NET MVC 框架关闭浏览器后,如何让用户保持登录状态?

asp.net - 如何从 Owin 管道中获取 ApplicationDbContext

c# - Identity Server 4 - 未经授权的客户端

asp.net-mvc - 为什么在 asp.net 身份中验证电话号码后注销?

c# - 为什么我的查询没有结果?

c# - ASP MVC - 从创建的部分 View 中获取数据