Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何在asp.net mvc注册表中查找此邮件的翻译位置_Asp.net Mvc - Fatal编程技术网

Asp.net mvc 如何在asp.net mvc注册表中查找此邮件的翻译位置

Asp.net mvc 如何在asp.net mvc注册表中查找此邮件的翻译位置,asp.net-mvc,Asp.net Mvc,我已经在用户身份项目中创建了一个注册表。我想翻译此邮件,但找不到源邮件的位置。错误消息如图所示。 有人能帮我吗 以下是密码的相关视图模型: 您应该重写IdentityErrorDescriber的方法来更改标识错误消息 public class CustomIdentityErrorDescriber : IdentityErrorDescriber { public override IdentityError PasswordTooShort(int length) { return

我已经在用户身份项目中创建了一个注册表。我想翻译此邮件,但找不到源邮件的位置。错误消息如图所示。 有人能帮我吗

以下是密码的相关视图模型:

您应该重写IdentityErrorDescriber的方法来更改标识错误消息

public class CustomIdentityErrorDescriber : IdentityErrorDescriber
{
    public override IdentityError PasswordTooShort(int length) { return new IdentityError { Code = nameof(PasswordTooShort), Description = $"Passwords must be at least {length} characters."  }; }
    public override IdentityError PasswordRequiresNonAlphanumeric() { return new IdentityError { Code = nameof(PasswordRequiresNonAlphanumeric), Description = "Passwords must have at least one non alphanumeric character." }; }
    public override IdentityError PasswordRequiresDigit() { return new IdentityError { Code = nameof(PasswordRequiresDigit), Description = "Passwords must have at least one digit ('0'-'9')." }; }
    public override IdentityError PasswordRequiresLower() { return new IdentityError { Code = nameof(PasswordRequiresLower), Description = "Passwords must have at least one lowercase ('a'-'z')." }; }
    public override IdentityError PasswordRequiresUpper() { return new IdentityError { Code = nameof(PasswordRequiresUpper), Description = "Passwords must have at least one uppercase ('A'-'Z')." }; }
}
然后需要替换startup.cs中的默认IdentityErrorDescriber

public void ConfigureServices(IServiceCollection services)
{
    // ...   
    services.AddIdentity<ApplicationUser, IdentityRole>()
            .AddErrorDescriber<YourIdentityErrorDescriber>();
}
public void配置服务(IServiceCollection服务)
{
// ...   
Asp Net框架(传统框架,而非核心框架)中的services.AddIdentity

没有一种简单的方法可以更改或自定义注册错误消息。因此,一种简单的方法是逐个更改或翻译错误消息。首先尝试查看用户错误数据时屏幕上出现的错误消息,然后使用AddError方法编写代码来更改这些错误消息。这样,您必须编辑内置的AddError方法。以下是我的解决方案:

private void AddErrors(IdentityResult result)
    {
        foreach (var error in result.Errors)
        {
            
            if (error.StartsWith("Passwords") && error.Contains("non letter"))
            {
                ModelState.AddModelError("", "Write your own message");
            }
            
            
            else if (error.StartsWith("Passwords") && error.Contains("one digit"))
            {
                ModelState.AddModelError("", "write your own message  ");
            }

             else if("Put More Conditions Here ")
                  { "Put More Declarations Here"}

            else
            {
                ModelState.AddModelError("", error);
            }                

    }

我尝试了这种方法,效果很好!

你能显示你的注册视图模型代码吗?我在问题的末尾添加了视图模型。我想这个解决方案与ASP Net核心有关,而不是ASP Net框架