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 合体演算子を使用して、フォールバック値を簡単に追加できます。

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

ローカリゼーション プロバイダーの動作を集中的に変更する必要がある場合 (ページで使用される構文を変更する必要はありません)、 をオーバーライドできますresourceProviderFactoryType。タイプを web.configグローバリゼーションセクションに追加します ...

<globalization resourceProviderFactoryType="MyLocalizationProvider"/>

そしてMyLocalizationProvider、サブクラス化して作成しますResourceProviderFactory

于 2012-09-19T19:01:46.923 に答える