ユーザーがフォームに入力または変更して保存し、後で必要に応じてフォームに戻って変更できる Web アプリがあります。フォームを保存すると、すべての値がデータベースに保存され、ユーザーがフォームに再度アクセスしたときに、それらの値を使用してフォームに入力されます。
ユーザーが保存後にフォームに戻るたびに、ユーザーがページを更新するまで、保存前の古い状態がフォームに表示されるようです。これは、ユーザーが [保存されたページの新しいバージョンを確認する] の Internet Explorer 設定を [Web ページにアクセスするたびに] に設定していない限り、毎回発生します。
問題は Internet Explorer でのみ発生し、他のブラウザでは問題はありません。うまくいかないキャッシュを防ぐために HTTP ヘッダーを設定しようとしました。
ページ ヘッドにメタ タグ<meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Expires" content="-1">
を追加しようとしましたが、次のことも試しました。
Response.Expires = -1;
Response.AddHeader("Pragma", "no-cache");
Response.CacheControl = "No-cache";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
コントローラーで。
そして、ここに応答ヘッダーがあります:
HTTP/1.1 200 OK
サーバー: ASP.NET 開発サーバー
/10.0.0.0 日付: 2013 年 8 月 26 日月曜日 20:10:33 GMT
X-AspNet-Version: 4.0.30319
X-AspNetMvc-Version: 3.0
プラグマ: キャッシュなし
Cache-Control: no-cache、no-store
プラグマ: no-cache
Expires: -1
Content-Type: text/html; charset=utf-8
Content-Length: 66131
接続: 閉じる
ユーザーがそのページにアクセスするたびに、保存されたページの新しいバージョンを IE に強制的にチェックさせる方法はありますか? そうでない場合、MVC3 でこの問題の回避策はありますか?
前もって感謝します!