次の方法で共有


方法 : パラメータに基づいたユーザー コントロールの複数バージョンをキャッシュする

更新 : 2007 年 11 月

ユーザー コントロール出力のキャッシュは次の 2 つの方法で切り替えることができます。

  • クエリ文字列またはフォームの POST パラメータと共にユーザー コントロール名を指定します。この操作は、@ OutputCache ディレクティブの VaryByParam 属性を使用して、宣言によって行うことができます。また、ユーザー コントロールのコード内で PartialCachingAttributeVaryByParams プロパティを設定して、プログラミングによって行うこともできます。

  • ユーザー コントロールに含まれる ASP.NET サーバー コントロールの ID プロパティを指定します。この操作は、VaryByControl 属性を使用して、宣言によって行うことができます。また、PartialCachingAttributeVaryByControls プロパティを設定して、プログラミングによって行うこともできます。

    z72yz1zs.alert_note(ja-jp,VS.90).gifメモ :

    キャッシュへのユーザー コントロール出力をクエリ文字列またはフォームの POST パラメータに基づいて切り替える方法は、ユーザー コントロール自体がポストバックし、ポストバックを処理する場合にだけ有効です。ユーザー コントロールが、ユーザー コントールを含むページにポストバックする場合は、このタイプのユーザー コントロール出力キャッシュは正しく機能しません。

VaryByControl 属性を使用して、ユーザー コントロールの複数のバージョンを宣言によってキャッシュするには

  1. ポストバックするユーザー コントロールを作成します。

  2. ユーザー コントロールに、Duration 属性と VaryByControl 属性を持つ @ OutputCache ディレクティブを含めます。

    z72yz1zs.alert_note(ja-jp,VS.90).gifメモ :

    このディレクティブで VaryByControl 属性を使用する場合は、VaryByParam 属性を含める必要はありません。ただし、この属性を含めて "None" と設定することはできます。

  3. VaryByControl 属性に、ユーザー コントロール出力の切り替えの基準となるコントロールの ID を設定します。

    たとえぱ、次の @ OutputCache ディレクティブでは、ユーザー コントロールの有効期限が 60 秒に設定され、コントロールの出力は、ID が State の ASP.NET サーバー コントロールに基づいて切り替わります。

    <%@ OutputCache Duration="60" VaryByControl="State" %>
    

VaryByControls プロパティを使用して、ユーザー コントロールの複数のバージョンをプログラミングによってキャッシュするには

  1. コード内に、それ自体へのポストバックを実行するユーザー コントロール コードを記述します。

  2. ユーザー コントロール コードの先頭に、PartialCachingAttribute を組み込みます。

  3. Duration パラメータに値を指定し、VaryByControls パラメータを、ユーザー コントロール出力を切り替えるときの基準とする、ユーザー コントロール内の ASP.NET サーバー コントロールの ID に設定します。

    Duration を 60 秒に設定し、VaryByControls を State に設定するコード例を次に示します。このコードは、UserControl クラスを拡張するコードの前に置く必要があります。

    [PartialCaching(60, null, State, null)]
    
    <PartialCaching(60, null, State, null)>
    

VaryByParam 属性を使用して、ユーザー コントロールの複数のバージョンを宣言によってキャッシュするには

  1. それ自体にポストバックするユーザー コントロールを作成します。

  2. ユーザー コントロールに、Duration 属性と VaryByParam 属性を持つ @ OutputCache ディレクティブを含めます。

    z72yz1zs.alert_note(ja-jp,VS.90).gifメモ :

    ユーザー コントロールに対する @ OutputCache ディレクティブに VaryByControl 属性を指定した場合は、VaryByParam 属性を指定する必要はありません。

  3. VaryByParam 属性に、ユーザー コントロールを切り替えるときの基準となる GET クエリ文字列パラメータまたはフォームの POST パラメータを設定します。

    ユーザー コントロールの有効期限を 60 秒に設定し、コントロールの出力を State という名前のフォームの POST パラメータまたはクエリ文字列パラメータの値によって切り替える @ OutputCache ディレクティブの例を次に示します。

    <%@ OutputCache Duration="60" VaryByParam="State" %>
    

VaryByParams プロパティを使用して、ユーザー コントロールの複数のバージョンをプログミングによってキャッシュするには

  1. コード内に、それ自体へのポストバックを実行するユーザー コントロール コードを記述します。

  2. ユーザー コントロール コードの先頭に、PartialCachingAttribute を組み込みます。

  3. Duration パラメータに値を指定し、VaryByParams パラメータに、ユーザー コントロール出力を切り替える基準とする GET クエリ文字列パラメータまたはフォームの POST パラメータを設定します。

    Duration を 60 秒に設定し、VaryByParams を State という名前のフォーム POST パラメータまたはクエリ文字列パラメータに設定するコード例を次に示します。このコードは、UserControl クラスを拡張するコードの前に置く必要があります。

    [PartialCaching(60, State, null, null)]
    
    <PartialCaching(60, State, null, null)>
    

参照

処理手順

方法 : 宣言的属性を使用してユーザー コントロールの複数のバージョンをキャッシュする

概念

ASP.NET のキャッシュの概要

ASP.NET ページのキャッシュ

ページの複数バージョンのキャッシュ

ユーザー コントロール出力の複数バージョンのキャッシュ