我正在使用 OutputCache 属性在服务器端缓存我的操作的 html 输出。
很好,它可以工作,但是现在我遇到了内容很少更改的情况,但是当它发生更改时,用户在下一个请求中看到新数据至关重要。
那么,有没有办法以编程方式中止页面缓存持续时间?
我正在使用 OutputCache 属性在服务器端缓存我的操作的 html 输出。
很好,它可以工作,但是现在我遇到了内容很少更改的情况,但是当它发生更改时,用户在下一个请求中看到新数据至关重要。
那么,有没有办法以编程方式中止页面缓存持续时间?
您可以扩展 OutputCacheAttribute 以创建自己的缓存机制,该机制允许类似于原始 ASP.net 缓存的依赖关系。
您也可以使用HttpCachePolicy.AddValidationCallback()。总体思路是,当页面被渲染并插入缓存时,这个回调会与页面一起插入。在从缓存中检索页面时,调用回调并最终确定缓存的页面是陈旧的(并且应该被引导)还是有效的(并且应该被提供)。有关示例,请参见AuthorizeAttribute 源。但是,如果页面变得陈旧确实很少见,您可能会更好地使用其他响应中提到的 RemoveOutputCacheItem() 方法。