我在 ASP.NET MVC 视图上有一个Wijmo 树。每个树节点的检查状态都保存在我的数据库中。加载树时,根据返回的数据对每个节点进行检查或取消检查。当调用树上的nodeCheckChanged时,我使用 ajax 在我的控制器上调用一个操作,该操作成功地更改了我的数据。
当我重新加载树视图时出现问题。数据已保存在数据库中,但浏览器没有从服务器获取最新数据。
我只在 IE 所有版本中遇到问题。Firefox 和 Chrome 每次都能正常工作。
我查看了DotNetPerls 的此类页面,Microsoft 的此类页面,并在此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 调用中添加“cache: false”。$.ajax 调用每次都对同一个 url 进行。例如。“已分配文件夹/列表?用户 ID=12345”。IE 没有再次调用,而是返回一个缓存的结果。
现在IE每次都被迫返回最新数据。