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

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

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

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

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

您可以从输出缓存中删除页面,如下所示:

 HttpResponse.RemoveOutputCacheItem("MyPage.aspx"); 

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

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

除非有一些javascript方式来清除缓存(这将是可怕的),你不能。

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