ASP.NET MVC控制器共享的“每个请求”存储

时间:2010-09-15 12:48:13

标签: asp.net-mvc asp.net-mvc-2 controller

在标准的ASP.NET webforms项目中,如果我在一个需要相同数据的页面上有多个用户控件,我倾向于让第一个用户控件将数据放入HttpContext.Current.Items集合中,以便它所有其他人都可以使用。

在同一页面上多次使用的MVC控制器上的ViewResult与此最接近的是什么?

由于

修改

这里的ViewReults基本上是在页面上出现多次的内容区域,所以我想查询数据库一次以获取页面的所有内容的集合(当第一个内容区域被加盖时)而不是每个内容区域的单独查询。以为它会加快速度。

更多信息:

为了清楚起见,内容控制器操作被重复用作来自另一个“主”控制器所服务的页面内的“RenderAction”。因此,我认为我不能使用ViewData(或控制器类本身的任何其他属性),因为它不在同一控制器的不同实例之间共享。

我认为在使用this one之类的方法后,我将不得不依赖HttpContext。

2 个答案:

答案 0 :(得分:1)

“在同一页面上多次”意味着相同的请求意味着您仍然可以使用HttpContext.Current.Items集合。

答案 1 :(得分:0)

为什么不将此内容放在ViewModel中并让所有控件都使用它?这是View模型的标准用法。