我创建了一个包含两个页面的简单 ASP.NET 3.5 Web 应用程序。每个页面都有一个显示时间的标签和一个回发按钮。在每个页面的 Page_Load 中,我有以下内容:
Response.ClearHeaders();
Response.AppendHeader("Cache-Control", "no-cache"); //HTTP 1.1
Response.AppendHeader("Cache-Control", "private"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "no-store"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "must-revalidate"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "max-stale=0"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "post-check=0"); // HTTP 1.1
Response.AppendHeader("Cache-Control", "pre-check=0"); // HTTP 1.1
Response.AppendHeader("Pragma", "no-cache"); // HTTP 1.1
Response.AppendHeader("Keep-Alive", "timeout=3, max=993"); // HTTP 1.1
Response.AppendHeader("Expires", "Mon, 26 Jul 1997 05:00:00 GMT"); // HTTP 1.1
如果用户单击“返回”按钮,我想强制显示“页面已过期”消息。但是,正在发生的事情是后退按钮显示上一页,而不是从缓存中提取,而是刷新页面。标签将更新为当前时间。我不希望页面刷新,而是显示“页面已过期”消息。我怎么能强迫它?我已经使用 IE9 对此进行了测试,但我需要所有浏览器的行为都相同。