asp.net - 如何防止在 Internet Explorer 中进行缓存?

标签 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 实现相同的行为?

最佳答案

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

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

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

关于asp.net - 如何防止在 Internet Explorer 中进行缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30103568/

相关文章:

c# - 获取错误 : unsupported_grant_type using httpclient to post formdata in asp. 网络控制台应用程序

javascript - 检查 "-ms-expand"支持

c# - 将缓存项转换为特定对象类型以供 web 方法返回

php - 清除 drupal 缓存 - php 脚本

javascript - jQuery 动画在 Internet Explorer 中不起作用

linux - Amazon Linux AMI 上的 Symfony2 中的缓存/日志权限

javascript - 将工具提示的值发送到 javascript 函数

c# - 访问被拒绝 IIS 服务器问题

asp.net - 在 proc 中使用 sp_executesql 时出现 "select permission denied"错误 (Sql Server 2008)

javascript - focus() 在 IE 11 中不起作用