ユーザー コントロールをキャッシュするときに複数の VaryByCustom パラメーターを使用できますか?
質問
いくつかの異なる方法を試してみましたが、何らかの理由でうまくいきません。それは可能ですか?
解決
はい。宣言内ではセミコロンで区切ってください。
他のヒント
Global.asax.cs ファイルで GetVaryByCustomString() をオーバーライドする場合は、解析する必要がある値のセミコロン区切りのリストを渡すことができます。
指定された属性が存在しない場合に使用される組み込み値 (ブラウザ) が 1 つあります。
セミコロンで区切ることで複数のパラメータを使用できますが、パラメータを分割するロジックを自分で実装する必要があります。 これは、自分で解析する必要があるため、任意の文字を区切り文字として使用できることを意味します。
おそらくオーバーライドしているでしょう GetVaryByCustomString(HttpContext context, string custom)
global.asax にあります。の custom
パラメータには、次を使用して渡したものがすべて含まれます VaryByCustom
, 、 このような
<%@ OutputCache Duration="86400" VaryByParam="none" VaryByCustom="custom1;custom2" %>
補足: base.GetVaryByCustomString
文字列分割機能は実装されておらず、次の場合にのみ何かを行います。 browser
値として渡されます。それ以外の場合は戻ります null
.
所属していません StackOverflow