我有一個在Visual Studio 2010中創建的ASP.NET項目。所以開始項目時,我得到了通用的「MY ASP.NET APPLICATION」頁面。我已經刪除了所有這些通用內容,並且正在根據用戶的需求構建應用程序。Asp.Net在瀏覽器上點擊後退按鈕時強制Page_Load
在我的default.aspx頁面上,我有一個datagrid
包裹在UpdatePanel
中。當用戶從datagrid
中選擇一行時,我將導航到新頁面。一切工作正常,但如果用戶點擊瀏覽器中的後退按鈕,它就好像是從舊緩存版本加載頁面,因爲它再次顯示通用「MY ASP.NET應用程序」頁面。
我已經研究了一段時間,一切都表明,如果你告訴Response
不使用緩存,它會強制Page_Load
,如果用戶點擊後退按鈕。但是,這樣做並不適合我。如果我點擊刷新按鈕或鍵入F5,那麼我的頁面將成功重新加載。我使用IE9和這裏是我在我的母版頁的Page_Load
曾嘗試:
Response.Cache.SetExpires(DateTime.Now.AddDays(-1));
Response.Cache.SetValidUntilExpires(false);
Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
Response.Expires = -1441;
Response.ExpiresAbsolute = DateTime.Now.AddDays(-1);
Response.AppendHeader("pragma", "no-cache");
Response.CacheControl = "No-cache";
Response.AddHeader("cache-control", "no-store, no-cache, must-revalidate");
而且,我試着在母版頁的腳本插入這樣的:
<meta http-equiv="Expires" content="0"/>
<meta http-equiv="Cache-Control" content="no-cache"/>
<meta http-equiv="Pragma" content="no-cache"/>
也許這在你的文檔的開始會有幫助嗎? http://stackoverflow.com/a/11341116/109749 – jcolebrand 2012-07-11 20:42:42