.NET应用使用Areas时.resx本地化资源文件的存放与命名
.NET区域视图本地化.resx文件的正确存放与命名规则
针对区域视图本地化资源文件不生效的问题,以下是两种经过验证的正确配置方案:
方案一:根目录Resources下按区域结构映射
- 存放位置:在根目录
Resources下复刻区域视图的目录结构,即Resources/Areas/Myarea/Views/Home/ - 命名规则:支持两种格式
- 简化格式:与视图文件名对应,后缀加语言代码,例如
Home.es.resx - 完整命名空间格式:遵循
Areas.{区域名}.Views.{控制器名}.{视图名}.{语言代码}.resx,例如Areas.Myarea.Views.Home.Home.es.resx
- 简化格式:与视图文件名对应,后缀加语言代码,例如
方案二:区域内独立存放Resources目录
- 存放位置:在目标区域内新建
Resources目录,并复刻视图的子结构,即Areas/Myarea/Resources/Views/Home/ - 命名规则:直接使用
{视图名}.{语言代码}.resx,例如Home.es.resx
关键注意事项
- 资源文件的大小写必须与视图路径、文件名完全匹配,比如视图是
Home.cshtml,资源文件不能写成home.es.resx - 确保项目文件(
.csproj)中资源文件的生成操作为Embedded resource,.NET Core/.NET 5+ 默认会自动处理手动添加的资源文件,但如果是复制进来的文件,建议检查项目配置 - 确认本地化服务配置正确,在
Program.cs(或Startup.cs)中需启用视图本地化:
builder.Services.AddControllersWithViews() .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix) .AddDataAnnotationsLocalization();
内容的提问来源于stack exchange,提问作者DA2.
相关产品推荐
相关产品推荐

