gpt4 book ai didi

asp.net - 如何停止 ASP.NET Webforms 页面缓存不同版本

转载 作者:行者123 更新时间:2023-12-02 16:10:07 26 4
gpt4 key购买 nike

我有一个默认页面,可以显示 3 种不同的内容,具体取决于是否:

  1. 用户尚未登录
  2. 用户已登录,但尚未进行设置
  3. 用户已登录并已进行某些设置

发生的情况是,(1) 和 (2) 有时会显示,而它应该是另一个。按住 ctrl-r 后,会显示正确的版本。
这与浏览器后退按钮无关,它是在单击菜单选项转到默认页面或执行某些将用户带到默认页面的操作后发生的。

我还为该页面设置了一个路由,以便可以在其上附加用户名。例如:http://www.example.com/user1234

我提到这一点是为了防止它可能与此有关。

这是我尝试停止缓存的方法:

<%@ OutputCache Location="None" VaryByParam="None" %>

这不起作用,所以我尝试了(在 Page_Load 中):

Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache)
Response.Cache.SetNoStore()

知道我做错了什么吗?

预计到达时间

根据一些评论,我在 Chrome 隐身模式下尝试过,没有问题。我也尝试打开控制台来查看标题,但不幸的是问题就消失了。无论如何,这是标题:

请求

GET / HTTP/1.1 Host: localhost:2873 Connection: keep-alive
Cache-Control: max-age=0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,/;q=0.8 User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.92 Safari/537.36 Referer: .../signin Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8
Cookie: ...

回应

HTTP/1.1 200 OK Cache-Control: no-cache, no-store Pragma: no-cache Content-Type: text/html; charset=utf-8 Content-Encoding: gzip
Expires: -1 Vary: Accept-Encoding Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319 X-SourceFiles: =?UTF-8?B?...
X-Powered-By: ASP.NET Date: Thu, 27 Mar 2014 20:17:39 GMT
Content-Length: 3045

预计到达时间

我在 Chrome 中进行了测试,刚刚发现在 FireFox 中没有问题。

如果我登录/退出/进入/退出...没有问题
如果我登录/退出,然后使用错误的密码登录几次(导致登录页面回发),然后再次正确登录,它总是在 Chrome 中显示不正确的注销页面。

最佳答案

我也遇到了同样的问题。我所做的就是放置这个

Response.CacheControl = "No-cache";

在任何其他代码运行之前的页面加载中。这为我解决的问题与你的类似。当用户登录时,下拉框会加载该用户所属的不同商店。如果我更改了他们的商店,他们可以导航回该页面并查看他们的旧商店集。我将上面的内容放在页面加载中,这解决了我在 IE、Chrome 和 Firefox 中的问题。希望像这样简单的事情能够解决您的问题。

关于asp.net - 如何停止 ASP.NET Webforms 页面缓存不同版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22696996/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com