从DB返回的Internet Explorer缓存数据

时间:2011-11-17 16:08:43

标签: c# asp.net-mvc-2 caching jquery internet-explorer-9

所以我遇到了这个奇怪的问题。当我在本地开发,并且我在Firefox和IE中运行我的应用程序时,一切正常。

当我在集成环境中运行此应用程序时,Firefox没有看到此问题,但IE确实如此。基本上发生了什么,我们为用户提供了通过 AJAX 调用在数据库表中存储新行的选项。 AJAX 调用是通过 JQuery 进行的,由C#中的控制器吸收,然后将一些信息发送到proc并存储在DB表中。一旦发生这种情况,我们都可以验证这些数据是否已经存储。

还有一些功能可以在应用程序中查看基本上模仿我们刚刚存储数据的表格,也可以通过proc(select代替insert / update访问)。现在,当我们在插入新行后立即查看它时,Firefox会在Web表上显示新行,但IE不显示 - 即使两者都在本地工作,只有Firefox在集成中工作 - 所以很奇怪。

现在,如果用户插入新行然后清除他的IE缓存,他可以在点击链接时看到新行。

所以我的问题是:

  

1)我是否应该专注于JQuery中的一种方式,每次用户点击链接查看存储的行时清除浏览器缓存?

     

2)为什么这会在IE本地工作,而不是在集成服务器上工作?

     

3)我在.NET中可以做什么服务器端,就像我可以在控制器方法上设置的属性一样,它们设置/查看设置IE以忽略缓存的这些行?

谢谢你们。

2 个答案:

答案 0 :(得分:1)

将ajax调用的cache属性设置为false,如此处所述http://api.jquery.com/jQuery.ajax/

答案 1 :(得分:0)

只需对缓存的请求使用POST谓词即可。 IE缓存GET但POST也没问题 为此,请在您的操作中添加[HttpPost]属性。