我正在使用 Translator 对象(自定义类)来公开网站文本(该对象存储数据库中的文本)。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")
这将是 Helper 函数(在 Translate.cshtml 中)
@helper GetText(string label)
{
Translator Translator = @Cache.Get("Translator") as Translator;
@: Translator.GetTextByLabel(label);
}
所以我的问题是将缓存对象暴露给我的所有视图的最佳方式是什么。上述方法之一好吗?还是我应该采用另一种解决方案?
(我希望我的英语没问题,我是荷兰人)