ASP.NET Core 8 MVC共享视图本地化失效问题排查
问题排查与修复方案
1. 补全RequestLocalizationOptions的UICulture配置
你的RequestLocalizationOptions仅配置了SupportedCultures,但UI本地化依赖SupportedUICultures,缺失该项会导致视图本地化失效。修改Program.cs中的配置:
builder.Services.Configure<RequestLocalizationOptions>(opt =>{ opt.DefaultRequestCulture = new RequestCulture(supportedLanguages[0]); opt.SupportedCultures = cultures; // 新增UICulture配置 opt.SupportedUICultures = cultures; // 明确指定Cookie为优先本地化提供器 opt.RequestCultureProviders = new List<IRequestCultureProvider> { new CookieRequestCultureProvider() }; });
2. 检查资源文件属性
右键.resx资源文件→属性,确保:
- 自定义工具设置为
ResXFileCodeGenerator - 自定义工具命名空间设置为
Localization.Views.Shared(与文件路径层级对应)
3. 优化Lang方法的Cookie有效期
将Cookie有效期改为DateTimeOffset,避免时区问题:
new CookieOptions{ Expires = DateTimeOffset.Now.AddYears(1) }
4. 验证视图调用与资源键
确认_Layout.cshtml中@Localizer["search"]的语法正确,且对应.resx文件中存在search这个键值对。
内容的提问来源于stack exchange,提问作者progrAmmar
相关产品推荐
相关产品推荐

