我在几个地方看到过这个问题,一般来说答案是“使用ViewBag”,我认为这不符合我们的情况。
我们有一个具有共同属性的会员网站(例如Account -which包含用户的帐户设置),我想在Views和_layout.cshtml中使用它(例如,允许用户更改颜色方案)
在视图中,我们继承了基本视图模型,但我们如何在标准页面中访问此数据,例如关于我们等没有任何相关视图模型?我已经尝试创建一个部分视图,它通过它的控制器传递数据,但是没有用
答案 0 :(得分:1)
您的主要选择是:
1.考虑实施配置文件提供程序 - 随后可以在任何地方使用设置,使用操作过滤器
2.使用您自己的自定义上下文分配给当前请求/用户
3.对没有它们的页面使用基本控制器/基本视图模型
4.使用全局动作过滤器
5. viewdata / session
请参阅以下内容:
ASP.NET MVC 3 layout ViewBag data across all child views
如果你已经有了这个工作并且需要访问“关于我们”页面并且不想要另一个视图模型(为什么不呢?)那么动作过滤器将是要走的路 - 除非这是一个典型的aspx页面在这种情况下,你没有上面的3/4选项。