ASP.NET MVC ビューに Wijmo ツリーがあります。各ツリーノードのチェックステートはデータベースに保存されます。ツリーがロードされると、返されたデータに応じて各ノードがチェックまたはチェック解除されます。ツリーでnodeCheckChangedが呼び出されると、ajax を使用してコントローラーでアクションを呼び出し、データを正常に変更します。
ツリービューをリロードすると問題が発生します。データはデータベースに保存されていますが、ブラウザはサーバーから最新のデータを取得していません。
IEのすべてのバージョンでのみ問題が発生します。Firefox と Chrome はいつでも動作します。
DotNetPerls のこのようなページ、Microsoft のこのようなページを見て、このスタックオーバーフローの回答でオプション 4 を試しました。
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 に対して行われています。例えば。"AssignedFolder/List?UserId=12345". IE は再度呼び出しを行うのではなく、キャッシュされた結果を返していました。
現在、IE は毎回最新のデータを返すよう強制されています。