以编程方式在asp.net mvc中中止OutputCache持续时间

时间:2009-07-29 14:21:48

标签: c# asp.net-mvc model-view-controller caching outputcache

我正在使用OutputCache属性在服务器端缓存我的动作的html输出。

很好,它可以工作,但现在我的情况是内容很少变化,但是当它发生变化时,用户在下一次请求时看到新数据至关重要。

那么,有没有办法以编程方式中止页面缓存持续时间?

3 个答案:

答案 0 :(得分:7)

答案 1 :(得分:0)

您可以扩展OutputCacheAttribute以创建自己的缓存机制,以允许类似于原始ASP.net缓存的依赖。

答案 2 :(得分:0)

您也可以使用HttpCachePolicy.AddValidationCallback()。一般的想法是,当页面呈现并插入到缓存中时,此回调将与页面一起插入。在从高速缓存检索页面时,调用回调并最终确定高速缓存的页面是陈旧的(并且应该被引导)还是有效的(并且应该被提供)。有关示例,请参阅AuthorizeAttribute source。但是,如果页面变得陈旧真的罕见,那么您可能会更好地使用其他响应中提到的RemoveOutputCacheItem()方法。