11

VaryByParamとVaryByHeaderを使用してキャッシュを実行しようとしています。AJAXリクエストが届くと、部分的なXHTMLを返します。通常のリクエストが来ると、ヘッダー/フッター付きの部分的なXHTMLページを送信します。

次のようにしてページをキャッシュしようとしました。

[OutputCache( Duration = 5, VaryByParam = "nickname,page", VaryByHeader = "X-Requested-With" )]

ただし、これは機能しません...最初に通常のリクエストを実行してからAJAX呼び出しを実行すると、部分的ではなく完全にキャッシュされたページが取得されます。その逆も同様です。VaryByHeaderが無視されているようです。通常のリクエストではX-Requested-Withが省略されているためですか?それとも、VaryByParamまたはVaryByHeaderを実行していますか?

これを回避する私の明白な方法は、AJAXリクエストが部分的なページのみを返す別のメソッドを呼び出すことですが、可能であればそれを避けたいと思います。

OutputCacheAttributeでASP.NETMVC1.0を使用しています。

4

3 に答える 3

28

この MSDN リファレンスによると、VaryByParam の複数の値は、カンマではなくセミコロンで区切る必要があります。

于 2010-08-12T15:40:35.547 に答える
2

www.fiddlertool.comを使用してヘッダーをチェックし、そもそもヘッダーが渡されているかどうかを確認してください。

于 2010-05-07T06:46:07.123 に答える
1

持続時間は 5 秒に設定されています。これは意図的なものですか?この期間の後、キャッシュのタイムアウトに関係があるのではないかと思います。

于 2010-05-07T07:55:48.363 に答える