MVC3 RedirectToAction缓存

时间:2012-07-20 00:45:54

标签: jquery asp.net-mvc-3 http-caching http-redirect

我有一个MVC3应用程序。我有一个动作,Action1,它通过RedirectToAction重定向到另一个动作Action2。这导致HTTP 302响应。响应似乎在某处缓存,因为后续对Action1的调用从未到达服务器。我尝试过以下方法:

  1. 将Web.config中的输出缓存设置为禁用。
  2. 清除浏览器(Chrome和IE9)缓存。
  3. 在Action1请求中附加一个随机数。
  4. 更改了Action1的操作,看它是否会触发缓存死亡。
  5. 禁用我的网络连接,以为某种方式我的localhost请求被缓存在路由器或其他东西中。
  6. 无论我做什么,似乎仍然存在一层缓存。我在我的笔记本电脑上本地运行IIS 7.5中的应用程序。我从同一台机器上访问它。我唯一的想法是IIS正在某处缓存重定向 - 但我无法弄清楚它可能在哪里。唯一可能值得一提的是我通过动态创建表单并使用jQuery提交它来发布请求。

    以下是我请求Action1时的请求标头:

    POST /Test/Action1
    Host: localhost
    Connection: keep-alive
    Content-Length: 36
    Cache-Control: max-age=0
    Origin: http://localhost
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11
    Content-Type: application/x-www-form-urlencoded
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Referer: http://localhost/Test
    Accept-Encoding: gzip,deflate,sdch
    Accept-Language: en-US,en;q=0.8
    Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
    Cookie: CartID=2637139; ASP.NET_SessionId=njto1i55dsbfsib5x2vpin55; siteuidut=6750fc9eda6c479db11ce10328a595ec; UserID=1; .ASPXAUTH=0:6172Tz9ggmhlHKcOJE+Jmg==
    

    以下是回复标题:

    HTTP/1.1 302 Found
    Cache-Control: private, s-maxage=0
    Content-Type: text/html; charset=utf-8
    Location: /Test/Action2
    Server: Microsoft-IIS/7.5
    X-AspNetMvc-Version: 3.0
    X-AspNet-Version: 4.0.30319
    X-Powered-By: ASP.NET
    Date: Fri, 20 Jul 2012 00:42:59 GMT
    Content-Length: 140
    

0 个答案:

没有答案