我有一个默认页面,根据以下情况可以显示三种不同的内容:
- 用户未登录
- 用户已登录但尚未设置
- 用户已登录并且已设置
现在的问题是,有时会显示(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
预计时间2
我一直在Chrome上测试,刚刚发现在FireFox上没有问题。
如果我登录/退出/登录/退出...就没有问题。如果我登录/退出,然后用错误的密码登录几次(导致登录页面回传),然后再正确地登录,它总是在Chrome中显示不正确的注销页面。