You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET Core中无法通过名称获取共享资源文件,ModelState错误本地化失败求助

ASP.NET Core ModelState 本地化:共享资源文件不被识别的解决方案

我帮你梳理一下ASP.NET Core里共享资源文件不被识别的常见排查点和解决办法,这些都是我处理这类问题时常用的步骤:

1. 检查资源文件的命名、位置与生成操作

  • 共享资源文件的标准命名是SharedResources.resx(默认语言),多语言版本比如中文用SharedResources.zh-CN.resx,要确保命名完全符合这个格式
  • 建议把资源文件放在专门的Resources文件夹下(根目录创建即可),如果放在其他位置,后续配置需要对应调整
  • 关键设置:右键资源文件→属性→将「生成操作」改为嵌入的资源,这个是很多人容易忽略的点,默认可能是「内容」,会导致资源无法被嵌入程序集

2. 确认资源文件的访问修饰符

你提到已经设为public,再仔细核对一下:打开.resx文件,右上角有个「访问修饰符」下拉框,必须选择Public(默认是Internal),否则依赖注入容器无法访问到资源类。

3. 配置本地化服务的正确姿势

在Program.cs中,必须正确注册共享资源作为DataAnnotations的默认本地化资源,示例代码如下:

// 注册本地化服务,指定资源文件所在路径(如果放在Resources文件夹)
builder.Services.AddLocalization(options => options.ResourcesPath = "Resources");

// 配置控制器/视图本地化,并绑定共享资源
builder.Services.AddControllersWithViews()
    .AddDataAnnotationsLocalization(options =>
    {
        // 指定共享资源类型作为DataAnnotation的本地化提供者
        options.DataAnnotationLocalizerProvider = (type, factory) =>
            factory.Create(typeof(SharedResources));
    })
    .AddViewLocalization();

// 添加请求本地化中间件(必须放在路由配置之前)
var supportedCultures = new[] { "en-US", "zh-CN" }; // 替换成你需要的语言
var localizationOptions = new RequestLocalizationOptions()
    .SetDefaultCulture(supportedCultures[0])
    .AddSupportedCultures(supportedCultures)
    .AddSupportedUICultures(supportedCultures);

app.UseRequestLocalization(localizationOptions);

注意:如果你的共享资源类命名空间不是项目根命名空间(比如放在Resources文件夹下,自动生成的类命名空间是YourProjectName.Resources),要确保typeof(SharedResources)的引用包含正确的命名空间,或者直接写全限定名typeof(YourProjectName.Resources.SharedResources)。

4. 验证资源键与ModelState错误的匹配度

  • 对于默认的DataAnnotation错误(比如[Required]),资源键要和默认错误消息的格式完全一致,比如默认Required的键是The {0} field is required.,你可以在资源文件中添加这个键并设置本地化值
  • 如果是自定义错误消息(比如[Required(ErrorMessage = "RequiredField")]),资源文件中必须存在RequiredField这个键,对应的值就是本地化后的文本

5. 清理缓存并重新生成项目

有时候Visual Studio的缓存会导致资源文件无法被正确加载,尝试以下操作:

  • 右键项目→清理
  • 右键项目→重新生成
  • 手动删除项目根目录下的bin和obj文件夹
  • 重启Visual Studio

内容的提问来源于stack exchange,提问作者Bohdan Yatsishin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 15:37:34