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を使用しています。