我正在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实现相同的行为?
答案 0 :(得分:1)
您可能需要采取不同的方法。尝试创建自定义确认框以捕获/取消刷新操作:
http://devzone.co.in/show-confirmation-box-page-refresh-page-unload-using-javascript/
Execute function before refresh (虽然这个解决方案有一条评论说它在FireFox上不起作用)。