Translatorオブジェクト(カスタムクラス)を使用してWebサイトのテキストを公開しています(オブジェクトはデータベースからのテキストを格納します)。Translatorオブジェクトは、キャッシュのApplication_Start()関数に格納されます。
Translatorオブジェクトの現在の使用法は次のとおりです。
私はMasterViewModelを持っています
public class MasterViewModel { public Translator Translator = HttpContext.Current.Cache.Get("Translator") as Translator; }
すべてのビューには、MasterViewModelに固有のビューモデルがあります
public class RandomViewModel : MasterViewModel { }
私の見解では、Translatorオブジェクトを使用できます
@model ViewModels.RandomViewModel @Model.Translator.GetText(label)
これは良いアプローチではないと思います。App_Codeでかみそりヘルパーを作成して、私の見解で使用できるようにすることをお勧めしますか?
@Translate.GetText("RANDOM_TEXT")
これはヘルパー関数になります(Translate.cshtml内)
@helper GetText(string label)
{
Translator Translator = @Cache.Get("Translator") as Translator;
@: Translator.GetTextByLabel(label);
}
したがって、私の質問は、キャッシュされたオブジェクトをすべてのビューに公開するための最良の方法は何ですか。上記のアプローチの1つは良いですか?または、別の解決策を使用する必要がありますか?
(私の英語が大丈夫だといいのですが、私はオランダ語です)