0

我在尝试覆盖 ASP.NET MVC 中的 DisplayNameAttribute 以提供本地化字符串时遇到问题。代码本身很简单,类似于另一个 Stackoverflow 帖子链接文本中的代码

该代码适用于全球资源,但不适用于本地资源。我有一个注册屏幕并使用 Visual Studio“生成本地资源”命令来创建我的本地资源文件。生成的文件名为 Registration.aspx.resx,App_LocalResources 文件夹是相对于实际的 Registration.aspx 页面创建的 - 正如人们所期望的那样。

但是,当我尝试使用以下方法获取本地化字符串时:

ResourceManager.GetString(resourceKey)

我收到以下错误消息。

找不到适合指定区域性或中性区域性的任何资源。确保“FullAssemblyName.Views.Account.App_LocalResources.Registration_aspx.resources”在编译时被正确嵌入或链接到程序集“FullAssemblyName”中,或者所有所需的附属程序集都是可加载和完全签名的。

使用反射器,我可以看到该文件实际上是 Registration.aspx.resources 而不是 Registration_aspx.resources - 下划线/句点是细微的差别

FullAssemblyName.Views.Account.App_LocalResources.Registration.aspx.resources

我已经玩弄了很多代码,但无论我做什么,被请求的文件总是与在程序集中编译的文件不同。例如,如果我重命名 Registration_aspx(在生成的 Registration.aspx.designer.cs 类中,我得到相同的错误,但这次路径是“...App_LocalResources.Registrationaspx.resources”

有没有人遇到过这个?有什么办法可以确保在我的程序集中找到的资源有这个下划线?!?!?

先感谢您!

4

1 回答 1

0

试试 Michael K. Campbell 解决方案链接文本。它在本地化我的项目时效果很好。

于 2010-01-28T17:10:51.803 回答