IE缓存从服务器返回的旧数据

Rob*_*ert 2 c# asp.net jquery internet-explorer wijmo

我在ASP.NET MVC视图上有一个Wijmo树.每个treenode的checkstate保存在我的数据库中.加载树时,将根据返回的数据选中或取消选中每个节点.当调用树上的nodeCheckChanged时,我使用ajax在我的控制器上调用一个成功更改数据的操作.

当我重新加载树视图时出现问题.数据已保存在数据库中,但浏览器无法从服务器获取最新数据.

我只在IE版本中遇到问题.Firefox和Chrome每次都有效.

我已经看过像网页这样从DotNetPerls,这个来自微软,并试图在方法四这个计算器的答案.

我发现在IE中获取最新数据的唯一方法是设置为true选项开发人员工具 - >缓存 - >始终从服务器刷新.

我需要做什么才能像其他浏览器一样重新加载我的数据?

谢谢大家花时间阅读这个问题!

编辑

我树的数据来自我模型的集合.此集合由一个操作填充.

我的行动:

public ActionResult List(AssignedFolderListModel model)
{
    //Using EntityFramework
    model.TopLevelFolders = db.Folders;
    return PartialView(model);
}
Run Code Online (Sandbox Code Playgroud)

我的模特:

public class AssignedFolderListModel
{
    public string UserId { get; set; }
    public IEnumerable<Folder> TopLevelFolders { get; set; }
    public Guid[] AssignedFolderIds { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

回答

我需要在$ .ajax调用中添加"cache:false".每次都会对同一个URL进行$ .ajax调用.例如."AssignedFolder /列表?用户ID = 12345".IE没有再次进行调用,而是返回缓存结果.

现在,IE每次都被迫返回最新数据.

Jon*_*upp 5

IE缓存所有获取 - 你需要做一些事情来欺骗IE不要缓存它.使用jQuery.ajax调用,您可以在调用上设置"cache:false"(它只是向请求的URL添加一个随机时间戳) - 在该树上查找关于这样做的配置选项,或者在您可以操作的钩子上用于从服务器重新加载数据的URL(并将您自己的时间戳添加到请求的URL).