如何清除ASP.NET中的页面缓存?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (32)

对于我的博客,我想使用输出缓存来保存约10分钟的缓存版本的关键帖子,这很好...

<%@OutputCache Duration="600" VaryByParam="*" %>

但是,如果有人发表评论,我想清除缓存,以便刷新页面并且可以看到评论。

我如何在ASP.Net C#中执行此操作?

提问于
用户回答回答于

HttpResponse.RemoveOutputCacheItem("/caching/CacheForever.aspx");
用户回答回答于

如果知道要清除缓存的页面,以上方法都可以。在我的实例(ASP.NET MVC)中,我引用了来自各地的相同数据。因此,当我做了一个[保存]我想清除缓存网站广泛。这对我有用:http://aspalliance.com/668

这是在OnActionExecuting过滤器的上下文中完成的。这可以通过在BaseController中重写OnActionExecuting来完成。

HttpContextBase httpContext = filterContext.HttpContext;
httpContext.Response.AddCacheItemDependency("Pages");

建立:

protected void Application_Start()
{
    HttpRuntime.Cache.Insert("Pages", DateTime.Now);
}

小调整:我有一个助手,它添加了“flash消息”(错误消息,成功消息 - “此项目已成功保存”等)。为了避免每次后续GET都出现闪存信息,我必须在写入闪存信息后无效。

清除缓存:

HttpRuntime.Cache.Insert("Pages", DateTime.Now);

扫码关注云+社区