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

ASP.NET Core MVC本地化配置后不生效问题求助

ASP.NET Core MVC 本地化不生效的解决方案

我帮你排查了下,你已经完成了大部分基础配置,但有几个关键细节遗漏了,导致翻译没有生效,具体如下:

1. 明确指定资源文件路径

你创建了Resources文件夹,但ASP.NET Core默认不会自动扫描这个目录下的资源文件。需要在ConfigureServices的AddMvc配置中添加资源路径的指定:

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddMvc(config => 
    { 
        config.Filters.Add<ActionFilter>(); 
    })
    // 新增这一行,告诉框架资源文件存放在Resources文件夹
    .AddMvcOptions(options => options.ResourcesPath = "Resources")
    .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
    .AddDataAnnotationsLocalization(); 

    // 其余请求本地化配置保持不变
}

2. 确保资源文件的命名与结构匹配

根据你设置的资源路径,资源文件的命名必须对应控制器/视图的结构:

  • 针对HomeController的字符串本地化:
    你可以在Resources文件夹下创建Controllers子目录,然后把HomeController.fr.resx放在这个子目录里;或者直接在Resources根目录将文件命名为Controllers.HomeController.fr.resx。
  • 针对Index.cshtml视图的本地化:
    你需要额外创建视图对应的资源文件——要么在Resources根目录命名为Views.Home.Index.fr.resx,要么创建Resources/Views/Home子目录,然后放入Index.fr.resx。记得在这个资源文件里添加Home到Accueil的映射。

3. 检查资源文件的编译属性

在Visual Studio中右键点击你的.resx文件,打开属性面板,确认自定义工具设置为ResXFileCodeGenerator,这个设置能确保资源文件被正确编译并被框架识别。

你的中间件顺序是对的(UseRequestLocalization在UseMvc之前),这部分没问题。做完上面的调整后,重启应用应该就能看到翻译生效了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:16:31