如何在MVC3 Web应用程序中的缓存中存储动态生成的视图?

时间:2012-03-21 13:39:15

标签: performance asp.net-mvc-3 caching

这是关于asp.net mvc3 web应用程序。

我们使用Object cache来存储序列化对象(包含产品详细信息),以防止昂贵的数据库查询。

假设它在对象缓存中存储了100个产品属性,这是在从缓存而不是从db加载页面时检索的。然后,它被传递到查看哪个准备和显示页面。因此它在视图上迭代100次并调用所有其他相关的局部视图来准备页面。

您是否建议将生成的视图存储在缓存中,而不是使用对象缓存?怎么做?

2 个答案:

答案 0 :(得分:2)

  

您建议将生成的视图存储在缓存中,而不是使用对象缓存吗?

  

怎么做?

通过使用[OutputCache]属性修饰为此视图提供服务的控制器操作。或者,如果您只想缓存页面的某些部分,则可以对将使用Html.Action帮助程序(而不是HTML.Partial - >>呈现的子操作使用此属性,您无法使用它进行缓存)。

答案 1 :(得分:1)

如果视图是静态的,您可以将视图存储在缓存中。您可以通过将OutputCache属性置于操作上来实现。

VB:

<OutputCache(Duration:=3660, VaryByParam:="None")>

C#

[OutputCache(Duration=3660, VaryByParam="None")]

如果希望缓存根据操作参数

而有所不同,则可以更改VaryByParam设置