禁用aspnet mvc2站点的缓存

时间:2012-03-24 15:13:25

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

我有一个使用MVC2 + Entity2Sql作为DB后端编写的站点。我正在使用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结果,与第1个 - 服务器端相同

[OutputCache(Duration = 0)]

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

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

1 个答案:

答案 0 :(得分:-1)

尝试:

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

对我而言,它有效。