vb.net - 禁用页面缓存以使用浏览器后退按钮强制页面加载

标签 vb.net browser caching http-headers

我有一个 asp.net 网站,它在页面上使用更新面板,我无法从服务器重新加载。我有这个用于母版页上的禁用页面缓存。

     Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1))
     Response.Cache.SetValidUntilExpires(False)
     Response.Cache.SetRevalidation(HttpCacheRevalidation.AllCaches)
     Response.Cache.SetCacheability(HttpCacheability.NoCache)
     Response.Cache.SetNoStore()

当我单击浏览器后退按钮返回该页面时,它说该页面已过期。我网站上的其他页面工作并调用页面加载,我找到但无法使用的唯一解决方案是将整个页面包装在更新面板中,但我不能这样做,因为我在页面上有一个报告查看器不适用于ajax。如果有人可以提供帮助,我将不胜感激。

最佳答案

这不是浏览器缓存问题;这是一个回发。您必须实现 Post/Redirect/Get 模式以避免“您想再次提交吗?/页面已过期”消息。

http://en.wikipedia.org/wiki/Post/Redirect/Get

这件事的经典例子是当网页有一个保存按钮时,可以在数据库中插入一些内容。单击“保存”按钮 -> 发生回发 -> 代码在表中插入一行 -> 用户刷新页面(F5) -> 再次发生回发 -> 代码再次插入同一行。

为避免上例中的双重插入,您需要在按下“保存”按钮时重定向,然后才执行插入。

关于vb.net - 禁用页面缓存以使用浏览器后退按钮强制页面加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/835605/

相关文章:

javascript - Apple 是否发布了用于 touch bar 的 API?

javascript - 在js之前加载css文件

django - Django 中的分层缓存

asp.net - 此代码是否可以阻止 2 个独立的 Azure 工作线程实例同时执行操作?

vb.net - .Net DataSet 不适合设计时

.net - 结合枚举

android - 在 Android 中开发 Web 监视器

javascript - 在 pixi.js 中初始加载后访问纹理

PHP ob_start vs opcode APC,解释差异和实际用法?

vb.net - VB中个位数日期前加零