1

DB バックエンドとして MVC2 + Entity2Sql を使用して作成されたサイトがあります。jQueryダイアログを使用してレコードを編集し、PartialViewを返すアクションを使用してデータを入力していますが、最初の呼び出しの後、このアクションはHTTP回答304 Not Modifiedの古いデータを含むビューを返します。

ログを確認しました-DBからのデータが正しく取得されたため、クライアント側のキャッシュに問題があります-キャッシュデータをクリアした後、問題なく受信しました。

次のアクションを実行してキャッシュを無効にしましたが、成功しませんでした:

次のコードを web.config に追加し、サーバー側で無効にします

<caching>
  <outputCache enableOutputCache="false" enableFragmentCache="false" />
</caching>

コードを Site.Master に追加し、クライアントで無効にします:

<meta http-equiv="expires" content="-1" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />

最初のサーバー側と同じように、PartialContent の結果を返すメソッドに属性を追加しました

[OutputCache(Duration = 0)]

アプリケーションの IIS 出力キャッシュ設定に「キャッシュしない」で「*」拡張子を追加しました (IIS7 を使用)

これらの方法はすべて私にとってはうまくいきません.IEのdevtoolsはまだ200ではなく304の答えを示しています.

4

1 に答える 1

-1

試す:

[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]

私にとってはうまくいきます。

于 2012-05-01T12:03:13.000 に答える