我有一个 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/