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

IViewLocalizer仅显示键而非.resx文件值的ASP.NET Core本地化问题

ASP.NET Core IViewLocalizer 本地化值不显示排查方案

以下是针对问题的具体排查和解决步骤:

1. 资源文件命名与路径检查

确保资源文件的命名和路径与视图结构严格对应:

  • 若视图路径为 Views/Shared/_Layout.cshtml,资源文件需放在 Resources/Views/Shared 文件夹下,命名为 _Layout.en-US.resx 和 _Layout.cs-CZ.resx
  • 若直接将资源文件放在根 Resources 文件夹下,需命名为 Views.Shared._Layout.en-US.resx(用点分隔视图路径)

2. 本地化服务配置验证

检查 Program.cs 中的配置是否完整,示例正确配置如下:

// 添加本地化服务,指定资源路径
builder.Services.AddLocalization(options => options.ResourcesPath = "Resources");

// 添加视图本地化支持
builder.Services.AddControllersWithViews()
    .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
    .AddDataAnnotationsLocalization();

// 配置支持的文化
var supportedCultures = new[] { "en-US", "cs-CZ" };
var localizationOptions = new RequestLocalizationOptions()
    .SetDefaultCulture(supportedCultures[0])
    .AddSupportedCultures(supportedCultures)
    .AddSupportedUICultures(supportedCultures);

// 启用请求本地化
app.UseRequestLocalization(localizationOptions);

注意:必须调用 AddViewLocalization,否则视图无法使用 IViewLocalizer。

3. 资源文件访问修饰符设置

打开 .resx 文件,在设计器顶部的“访问修饰符”下拉框中选择 public(默认是 internal,会导致视图无法访问资源)。

4. 视图注入与使用检查

确认视图顶部已正确注入 IViewLocalizer:

@inject IViewLocalizer Localizer

使用时确保键名与 .resx 文件中的完全一致(大小写敏感):

@Localizer["CookieSpanHeader"]

5. 文化切换与验证

  • 在视图中添加代码验证当前生效的文化:@System.Globalization.CultureInfo.CurrentUICulture.Name,确认是否为你配置的 en-US 或 cs-CZ
  • 可通过查询字符串手动切换文化测试,比如访问页面时添加 ?culture=en-US 或 ?culture=cs-CZ

6. 资源命名空间适配(可选)

如果项目的默认命名空间与资源文件的命名空间不匹配,需手动指定:

builder.Services.Configure<LocalizationOptions>(options =>
{
    options.ResourcesPath = "Resources";
    options.ResourceManagerStringLocalizerProvider = (type, factory) =>
    {
        var assemblyName = typeof(Program).Assembly.GetName().Name;
        // 替换为你的项目命名空间 + .Resources
        return factory.Create("YourProjectNamespace.Resources", assemblyName);
    };
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 22:13:23