我正在尝试在MVC 2网页中实现自定义区域设置服务。我有一个接口IResourceDictionary,它提供了几种按文化访问资源的方法。这是因为我想避免使用.Net资源的静态类。
问题是从视图中访问所选的IResourceDictionary。我已经考虑使用给定的ViewDataDictionary,创建一个基本控制器,我的所有控制器都继承这个控制器,在每个动作执行之前将我的IResourceDictionary添加到ViewData。
然后我可以这样调用我的资源字典:
(ViewData["Resources"] as IResourceDictionary).GetEntry(params);
不可否认,这是非常冗长和丑陋的,特别是在内联代码中,因为我们鼓励在MVC中使用。现在我倾向于静态类访问
ResourceDictionary.GetEntry(params);
因为它稍微优雅一点。我还想过将它添加到每个页面的类型化模型中,这似乎比将其添加到ViewData更强大。
从视图访问我的ResourceDictionary的首选方法是什么?我的所有观点都将使用这本词典。
答案 0 :(得分:1)
HtmlHelper扩展,允许您像这样调用您的方法:
<%: Html.GetEntry(params) %>
似乎是一个非常好的解决方案