【发布时间】: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