如何在Internet Explorer中阻止缓存?

时间:2015-05-07 14:08:53

标签: asp.net internet-explorer caching

我正在ASP.NET中开发一个Web应用程序,在某些页面上我想阻止它们使用以下代码缓存数据:

protected override void OnInit(EventArgs e)
{
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    Response.Cache.SetNoStore();
    Response.Cache.SetExpires(DateTime.MinValue);

    base.OnInit(e);
}

这样可以正常工作,但现在当用户尝试在回发后刷新页面(例如保存数据)时,浏览器会通知用户如果他继续操作将会导致两次操作,并询问您是否要继续或不。如果您在Chrome或Firefox上取消此功能,页面仍会保持其当前状态 - 这正是我想要的,但在IE中它已失效。

有没有办法为Internet Explorer实现相同的行为?

1 个答案:

答案 0 :(得分:1)

您可能需要采取不同的方法。尝试创建自定义确认框以捕获/取消刷新操作:

http://devzone.co.in/show-confirmation-box-page-refresh-page-unload-using-javascript/

Execute function before refresh (虽然这个解决方案有一条评论说它在FireFox上不起作用)。