ASP.NET MVC - 本地资源问题

时间:2010-01-17 00:55:50

标签: asp.net asp.net-mvc localization globalization resx

尝试覆盖ASP.NET MVC中的DisplayNameAttribute以提供本地化字符串时遇到问题。代码本身很简单,与另一个Stackoverflow帖子link text

中的代码类似

该代码适用于全球资源,但对本地资源却不太好。我有一个注册屏幕,并使用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”

有没有人碰到这个?有什么方法可以确保我的程序集中找到的资源有这个下划线吗?!?!?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

尝试Michael K. Campbell解决方案link text。在我的项目本地化方面,它很好用。