c# - 如何在 ASP.NET Core 中本地化验证属性的标准错误消息

标签 c# asp.net-core-2.2 validationattribute asp.net-core-localization

如何在 ASP.NET Core (v2.2) 中本地化验证属性的标准错误消息?例如, [必填] 属性有此错误消息“ xxx 字段是必需的。”; [邮箱地址] 有“ xxx 字段不是有效的电子邮件地址。 ”; [比较] 有“‘xxx’和‘yyy’不匹配。”等等。在我们的项目中,我们不使用英语,我想找到一种方法来翻译标准错误消息,而无需将它们直接写入每个数据模型类的每个属性中

最佳答案

这在 docs 中有详细说明.您可以执行以下任一操作:

  • 使用 ResourcePath属性上的选项。
    [Required(ResourcePath = "Resources")]
    

    然后,您将本地化的消息添加到 Resources/Namespace.To.MyClass.[lang].resx .
  • 对所有类使用一个资源文件:
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddMvc()
            .AddDataAnnotationsLocalization(options => {
                options.DataAnnotationLocalizerProvider = (type, factory) =>
                    factory.Create(typeof(SharedResource));
            });
    }
    
  • 关于c# - 如何在 ASP.NET Core 中本地化验证属性的标准错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59284038/

    相关文章:

    未调用 Dapper 自定义 SqlMapper.TypeHandler Parse 方法

    c# - 使用 dotnet restore 的 Docker 导致错误 : GSSAPI operation failed - An unsupported mechanism was requested

    asp.net-mvc-2 - 基于两个属性的自定义模型验证。一个影响另一个

    c# - Autofac Resolve<IEnumerable<T>>() 返回空列表

    c# - 使用 Razor Pages 在 Asp.NET Core 2.2 中找不到 ViewComponent

    c# - 有没有办法查明是否已设置属性或变量?

    c# - DataType(DataType.PhoneNumber) 和 PhoneAttribute 之间有什么区别

    c# - DataAnnotations "NotRequired"属性

    c# - 获取打开文件的用户名

    c# - 任务并行库 - 阻塞操作?