Microsoft MVC Preview 4中的OutputCacheFilter是否实际上保存了操作调用?

时间:2008-08-14 04:16:19

标签: c# asp.net asp.net-mvc outputcache

我们使用预览3(包括严格的压力测试)部署了一个实时,清新,时髦的网站。

页面输出缓存是我们的救星,使我们有能力满足我们的性能合同要求。

我的问题是,动作OutputCacheFilter和页面输出缓存之间是否存在差异?

动作输出缓存是否比页面输出缓存更快?

2 个答案:

答案 0 :(得分:3)

在内部,OutputCacheAttribute(也称为输出缓存过滤器)使用与page output caching相同的内部机制(也称为@OutputCache指令)。

因此,它不比页面输出缓存快。但是,使用MVC,您实际上无法通过MVC中的@OutputCache指令使用页面输出缓存,因为我们在操作后呈现视图(也称为页面)。所以你将获得很少的好处。

使用输出缓存过滤器,它会执行正确的操作,并且如果结果位于输出缓存中,则不会执行操作代码。希望有所帮助。 :)

答案 1 :(得分:1)

请注意,如果在标记为要缓存的Action上调用Html.RenderAction(..),则当前存在错误。而不是缓存特定操作,整个页面被缓存。我已经在codeplex上报告了这个问题,这似乎是一个已知的问题: Calling <% HTML.RenderAction<...>(...); %> to an Action with [OutputCache(..)] causes entire page to cache.