1

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

我检查了日志-正确检索了来自数据库的数据,因此客户端缓存存在问题-清除接收到的缓存数据后。

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

在 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。

4

1 回答 1

-1

尝试:

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

对我来说它有效。

于 2012-05-01T12:03:13.000 回答