3

キャッシュを追加した actionResult があります。

[OutputCache(Duration = 120)]

キャッシュされているページ上のいくつかの要素を変更すると、キャッシュされた出力を削除したいと思います。これが私がしたことですL

public void RemoveCachingForProfile(string guid)
{
    HttpResponse.RemoveOutputCacheItem("/Profile/" + guid);
}

自分のページで何かを変更すると、RemoveCachingForProfile関数が実行されます。その後、プロファイルのページに戻ると、キャッシュを無効にしたにもかかわらず、キャッシュの内容が表示されます。

f5 を押すと、正しい出力が表示されます。ページをキャッシュしているブラウザのようです。

4

2 に答える 2

2

キャッシュをローカル マシンではなくサーバーに保存する必要があります。

[OutputCache(Location = OutputCacheLocation.Server, Duration = 120)]

依存関係は次のとおりです。

System.Web.UI
于 2012-08-24T15:12:15.953 に答える
1

Location プロパティがない場合、出力キャッシュ プロバイダーは、サーバー側のキャッシュに加えて、属性プロパティで指定された期間、応答をキャッシュするようにクライアント (ブラウザー) に指示します。これを防ぐには、 OutputCacheAttributeのLocationプロパティを使用する必要があります。

属性をこれに変更すると、問題が解決します。

[OutputCache(Duration = 120, Location=OutputCacheLocation.Server)]
于 2012-08-24T15:11:52.760 に答える