如何以编程方式清除缓存?

时间:2011-01-21 10:32:31

标签: c# asp.net cache-control

在我的应用程序(ASP.NET + c#)中,我需要在用户进入aspx页面之前清除缓存。

有没有人知道如何以编程方式清除aspx页面或后面代码(c#)中的缓存?

3 个答案:

答案 0 :(得分:12)

在页面加载事件中编写以下代码:

protected void Page_Load(object sender, EventArgs e)
{
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.Cache.SetExpires(DateTime.Now);
    Response.Cache.SetNoServerCaching();
    Response.Cache.SetNoStore();
}

答案 1 :(得分:1)

您可以按如下方式从输出缓存中删除页面:

HttpResponse.RemoveOutputCacheItem("MyPage.aspx");

这不会将其从任何客户端缓存中删除,因此如果您想使用此技术,您可能希望禁用客户端缓存,例如,在aspx页面中使用以下指令:

<%@ OutputCache Location="Server" ...

答案 2 :(得分:0)

除非有一些javascript方式来清除缓存(这会很糟糕),否则你不能。

最好的办法是确保页面不会被缓存,就像Sukhi建议的那样 - 或者设置无缓存缓存配置文件并使用OutputCache指令。