我在ASP.NET MVC视图上有Wijmo Tree。每个treenode的checkstate保存在我的数据库中。加载树时,根据返回的数据检查或取消选中每个节点。当调用树上的nodeCheckChanged时,我使用ajax在我的控制器上调用一个成功更改数据的操作。IE缓存从服务器返回的旧数据
问题出现在我重新加载treeview的时候。数据已保存在数据库中,但浏览器无法从服务器获取最新数据。
我只在IE所有版本中遇到问题。 Firefox和Chrome每次都在运行。
我已经看过来自DotNetPerls的this,来自微软的this这样的页面,并尝试使用this stackoverflow答案的选项四。
我发现在IE中获得最新数据的唯一方法是将选项设置为true开发人员工具 - >缓存 - >始终从服务器刷新。
我该怎么做才能让IE像其他浏览器一样重新加载我的数据?
感谢大家花时间阅读这个问题!
编辑
我的树中的数据来自于我的模型的集合。这个集合由一个动作填充。
我的行动:
public ActionResult List(AssignedFolderListModel model)
{
//Using EntityFramework
model.TopLevelFolders = db.Folders;
return PartialView(model);
}
我的模型:
public class AssignedFolderListModel
{
public string UserId { get; set; }
public IEnumerable<Folder> TopLevelFolders { get; set; }
public Guid[] AssignedFolderIds { get; set; }
}
回答
我需要添加 “缓存:假” 到我的$就调用。每次调用$ .ajax调用的URL都是相同的。例如。 “AssignedFolder /列表?用户ID = 12345”。 IE并没有再次打电话,而是返回一个缓存的结果。
现在IE每次都被迫返回最新的数据。
这确实是我的问题的答案。我以前的评论是错误的。我需要为我的$ .ajax调用添加“cache:false”。每次调用$ .ajax调用的URL都是相同的。例如。 “AssignedFolder /列表?用户ID = 12345”。 IE并没有再次打电话,而是返回一个缓存的结果。 – Robert