4

我在我的页面中使用显式本地化,例如:

<asp:Literal ID="appTitle" runat="server" Text="<%$ Resources:TranslationResource, AppTitle %>"></asp:Literal></div>

如果 AppTitle 资源不存在,有什么方法可以避免“解析器错误”并显示空字符串或资源名称?

提前致谢。

4

1 回答 1

4

GetGlobalResourceObject如果键不存在,您可以使用,它执行相同的操作但返回 null,而不是引发异常。

<div><%= GetGlobalResourceObject("TranslationResource", "AppTitle") %></div>

您可以使用 null-coalescing 运算符轻松添加回退值:

<div><%= GetGlobalResourceObject("TranslationResource", "AppTitle") ?? "No translation resource" %></div>

如果您需要以集中方式修改本地化提供程序的行为(无需修改页面中使用的语法),您可以覆盖resourceProviderFactoryType. 将类型添加到 web.config全球化部分...

<globalization resourceProviderFactoryType="MyLocalizationProvider"/>

MyLocalizationProvider通过子类化创建ResourceProviderFactory

于 2012-09-19T19:01:46.923 回答