我有一个使用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。
答案 0 :(得分:-1)
尝试:
[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]
对我而言,它有效。