【发布时间】:2019-01-13 08:26:31
【问题描述】:
我正在构建一个命名空间很少的 ASP.net 核心项目,我所有的 resx 文件都在资源文件夹中,视图的本地化工作没有问题,但控制器不是 100%。我从 Microsoft 了解到的文档是命名约定如下:
namepsace MyProject.Controllers.SubNamespace {
class MyController: Controller {
}
}
此控制器的 resx 必须位于 Resources/Controllers/SubNamespace/MyController.en.resx 下
但它不起作用。我是不是错过了什么。
【问题讨论】:
-
“它不工作”是什么意思?它不编译吗?它会抛出异常吗?您是否收到
null作为文本,或者可能是与您期望的不同语言的文本? -
缺少的信息很少。您的控制器是否与 application/Startup.cs 在同一个项目中?您的项目名称是
MyProject还是MyProject.Webi?它涉及程序集名称和默认命名空间的混合。还有一些方法可以覆盖它(通过属性或 csproj,但必须先找到问题) -
@nvoigt 它会编译并运行,但它会像 _localizer["MY_TEXT"] 一样打印索引器,它会打印 MY_TEXT。
-
@Tseng 是的,它叫做 MyProject。
-
什么是
_localizer?请发帖minimal reproducible example。
标签: c# asp.net-core