默认DataAnnotations消息的本地化

时间:2018-08-07 19:36:40

标签: c# validation asp.net-core-2.0

如何替换默认的DataAnnotations。

有一个模型:

public class LoginViewModel
{
    [Required(ErrorMessage = "RequiredAttribute_ValidationError")]
    [EmailAddress]
    public string Email { get; set; }

    [Required]
    [DataType(DataType.Password)]
    public string Password { get; set; }        
}

在这里我找到了DataAnnotations的资源文件-strings.resx

将其添加到项目中,名称为-SharedResource.ru.resx

已将更改添加到Startup.cs

services.AddMvc()
         .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
            .AddDataAnnotationsLocalization(options =>
            {
                options.DataAnnotationLocalizerProvider = (type, factory) =>
                {
                    var assemblyName = new AssemblyName(typeof(SharedResource).GetTypeInfo().Assembly.FullName);
                    return factory.Create("SharedResource", assemblyName.Name);
                };
            });

现在事实证明,在ErrorMessage指示的地方,它使用了本地化。以及如何进行设置而无需指定ErrorMessage就能进行本地化。

0 个答案:

没有答案