MVC 2 Web ページにカスタム ロケール サービスを実装しようとしています。カルチャによってリソースにアクセスするためのいくつかのメソッドを提供するインターフェイス IResourceDictionary があります。これは、.Net リソースの静的クラスを避けたいためです。
問題は、ビューから選択した IResourceDictionary にアクセスすることです。与えられた ViewDataDictionary を使用して、各アクションが実行される前に IResourceDictionary を ViewData に追加するすべてのコントローラーが継承する基本コントローラーを作成することを考えました。
次に、リソース ディクショナリを次のように呼び出すことができます。
(ViewData["Resources"] as IResourceDictionary).GetEntry(params);
確かに、これは非常に冗長で見苦しく、特にインライン コードでは、MVC での使用が推奨されています。現在、私は静的クラスアクセスに傾いています
ResourceDictionary.GetEntry(params);
少しエレガントだからです。また、各ページの型付きモデルに追加することも考えました。これは、ViewData に追加するよりも堅牢に思えます。
ビューから ResourceDictionary にアクセスするための推奨される方法は何ですか? 私のすべてのビューは、この辞書を使用します。