首页 > 解决方案 > 无法在 .net 3.1 中获取文化资源

问题描述

早上好,

我正在使用 .netCore 3.1 并且在我的模型中我有电子邮件的属性验证,但返回消息始终是默认的,我无法以预期的文化收到消息。

我认为结构文件夹是正确的,当我检查中间件时,资源库有这条路线:

有人知道吗?

谢谢!!

标签: asp.net-coredata-annotations

解决方案


我正在使用 .netCore 3.1 并且在我的模型中我有电子邮件的属性验证,但返回消息始终是默认的,我无法以预期的文化收到消息。

我用下面的代码片段做了一个测试,它按预期工作,你可以参考它。

Models我在文件夹下的测试模型类

public class MyModel
{
    [Required(ErrorMessage = "The Email field is required")]
    [EmailAddress(ErrorMessage = "The Email field is not a valid email address")]
    [Display(Name = "Email")]
    public string Email { get; set; }

    //...
    //other properties
    //...
}

我的资源文件MyModel.fr.resx和文件夹结构

在此处输入图像描述

配置本地化

services.AddLocalization(options => options.ResourcesPath = "Resources");

services.AddControllersWithViews().AddDataAnnotationsLocalization()
    .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix);

测试结果

在此处输入图像描述

此外,您可以参考这篇关于“ASP.NET Core 中的全球化和本地化”的文档并尝试这些步骤来解决问题。

  1. 检查您是否在应用程序中正确配置本地化和数据注释本地化

  2. 检查浏览器用户是否选择并设置语言/文化

  3. 检查您是否正确使用点或路径命名约定来组织/命名您的资源文件


推荐阅读