【问题标题】:Disable cache for aspnet mvc2 site禁用 asp net mvc 2 站点的缓存
【发布时间】:2012-03-24 15:13:25
【问题描述】:

我有一个使用 MVC2 + Entity2Sql 作为数据库后端编写的网站。我正在使用 jQuery 对话框编辑记录并使用返回 PartialView 的操作填充它,但在第一次调用后,此操作返回带有旧数据的视图,HTTP 回答 304 Not Modified。

我检查了日志 - 数据库中的数据已正确检索,因此客户端的缓存有问题 - 清除缓存数据后接收正常。

我执行了以下操作来禁用缓存但没有成功:

在 web.config 中添加了以下代码,在服务器端禁用

<caching>
  <outputCache enableOutputCache="false" enableFragmentCache="false" />
</caching>

向 Site.Master 添加代码,在客户端禁用

<meta http-equiv="expires" content="-1" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />

向返回 PartialContent 结果的方法添加属性,与第一个 - 服务器端相同

[OutputCache(Duration = 0)]

在我的应用程序的 IIS 输出缓存设置中添加了带有“不缓存”的“*”扩展名(使用 IIS7)

所有这些方法都对我不起作用,IE 的 devtools 仍然显示答案不是 200,而是 304。

【问题讨论】:

  • 你试过[OutputCache(Location=OutputCacheLocation.None)]吗?这是我通常会使用的。

标签: model-view-controller caching browser-cache outputcache output-caching


【解决方案1】:

试试:

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]

对我来说它有效。

【讨论】:

    猜你喜欢
    • 2016-01-28
    • 2018-11-09
    • 2011-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 2019-08-29
    相关资源
    最近更新 更多