为什么OutputCache属性需要设置VaryByParam参数?

时间:2010-07-30 16:59:19

标签: asp.net-mvc caching varybyparam

我对此做了零研究,我只是好奇。

ASP.NET MVC中的OutputCacheAttribute类需要Duration和VaryByParam的值。我明白为什么需要持续时间,而不是VaryByParam。

2 个答案:

答案 0 :(得分:1)

如果他们不需要您配置它,您可能会无意中获得同一页面的数万个缓存副本,从而使输出缓存的好处无效。

因此有两种解决方案 - 一种,检查每个输出以查看它是否重复,或者两次,使缓存依赖于某些与页面相关的变量的值。第一个可能太昂贵了,所以他们选择了第二个。

他们试图通过强迫您意识到当存在某些查询字符串/ POST参数时可能会以不同方式呈现页面并强迫您考虑输出缓存意味着什么来引导您进入“成功的陷阱”以及它是如何工作的。

答案 1 :(得分:0)

更新:好的,从最新版本的MVC(3)开始,不再需要它,默认情况下不使用params,即只存在一次缓存。这是我之前预期的行为。