我在我的页面中使用显式本地化,例如:
<asp:Literal ID="appTitle" runat="server" Text="<%$ Resources:TranslationResource, AppTitle %>"></asp:Literal></div>
如果 AppTitle 资源不存在,有什么方法可以避免“解析器错误”并显示空字符串或资源名称?
提前致谢。
最佳答案
您可以使用 GetGlobalResourceObject
,如果键不存在,它会执行相同的操作但返回 null,而不是抛出异常。
<div><%= GetGlobalResourceObject("TranslationResource", "AppTitle") %></div>
您可以使用空合并运算符轻松添加回退值:
<div><%= GetGlobalResourceObject("TranslationResource", "AppTitle") ?? "No translation resource" %></div>
如果您需要集中修改本地化提供程序的行为(无需修改页面中使用的语法),您可以重写resourceProviderFactoryType
。将类型添加到 web.config globalization 部分 ...
<globalization resourceProviderFactoryType="MyLocalizationProvider"/>
并通过子类化 ResourceProviderFactory
创建 MyLocalizationProvider
。
关于c# - 显式本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12501020/