我有一个在 Visual Studio 2010 中创建的 ASP.NET 项目。所以要开始这个项目,我得到了通用的“MY ASP.NET APPLICATION”页面。此后,我删除了所有通用内容,并根据用户的需求构建了应用程序。
在我的 default.aspx 页面上,我有一个datagrid
包裹在UpdatePanel
. 当用户从 中选择一行时datagrid
,我导航到一个新页面。一切正常,但如果用户单击浏览器中的后退按钮,它就像是从旧的缓存版本加载页面一样,因为它再次显示通用的“我的 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"/>