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

问题描述:

我使用OutputCache属性在服务器端缓存我的动作的html输出。在asp.net中以编程方式中止OutputCache持续时间mvc

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

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

由于提前,

安德烈·卡卢奇

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

你也可以使用HttpCachePolicy.AddValidationCallback()。总体思路是,当页面被渲染并插入到缓存中时,该回调将与页面一起插入。从缓存中检索页面时,将调用回调并最终确定缓存页面是过时的(应该被引导)还是有效的(并且应该被提供)。例如,请参阅AuthorizeAttribute source。如果一个页面变旧,确实是很少见,但是您可能会更好地使用RemoveOutputCacheItem()方法,如其他响应中所述。