2011-01-21 111 views
4

在我的應用程序(ASP.NET + c#)我需要用戶輸入的aspx頁面之前清除緩存。如何以編程方式清除緩存?

沒有任何人有任何想法我如何通過編程清除aspx頁面上的緩存,或在後面的代碼(C#)?在頁面加載事件

+0

客戶端或服務器緩存? – 2011-01-21 10:33:36

+0

客戶端緩存,我的代碼時,我在瀏覽器上清除緩存,否則不.. – 2011-01-21 10:36:26

回答

11

寫下面的代碼:

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

除非有清除緩存(這將是可怕的)一些JavaScript的方式,你不能。

最好的辦法是,以確保該頁面沒有得到根本緩存,這樣做是Sukhi建議 - 或設立一個無緩存緩存配置文件,並使用OutputCache指令。

1

您可以從輸出緩存如下刪除頁面:

HttpResponse.RemoveOutputCacheItem("MyPage.aspx"); 

這不會從任何客戶端緩存中刪除它,所以如果你想使用這個技術,你可能會想禁用客戶端緩存,例如通過在aspx頁面中使用以下指令:

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