8

次のキャッシュが定義されたページがあります。

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

そのページ内に、キャッシュしたくないユーザーコントロールがあります。そのコントロールのためだけにオフにするにはどうすればよいですか?

4

1 に答える 1

4

オプション 1

ページでSubstitution コントロールまたは API を使用します。これにより、代替コントロール内に含まれる部分を除いて、ページ上のすべてをキャッシュできます。

http://msdn.microsoft.com/en-us/library/ms227429.aspx

これを使用する良い方法の 1 つは、html を文字列としてレンダリングする単純なサーバー コントロールとしてコントロールを実装することですが、これはページのコンテキストで (つまり、正しいクライアント ID を使用して) 行われます。Scott Guthrie は、これがどのように機能するかを示す非常に良い例を示しています。ちなみに、AJAX呼び出しでもうまく機能します...

http://weblogs.asp.net/scottgu/archive/2006/10/22/Tip_2F00_Trick_3A00_-Cool-UI-Templating-Technique-to-use-with-ASP.NET-AJAX-for-non_2D00_UpdatePanel-scenarios.aspx

Scott Gu の記事からの抜粋...

    [WebMethod]
    public string GetCustomersByCountry(string country)
    {
       CustomerCollection customers = DataContext.GetCustomersByCountry(country);

        if (customers.Count > 0)
            //RenderView returns the rendered HTML in the context of the callback
            return ViewManager.RenderView("customers.ascx", customers);
        else
            return ViewManager.RenderView("nocustomersfound.ascx");
    }

オプション 2

ページの読み込み時に AJAX 呼び出しを介して動的コントロールをレンダリングします。このようにして、ページ全体 (AJAX 呼び出しを含む) を安全にキャッシュすることができ、ページ間で変化するのは呼び出しのレンダリング結果のみです。

于 2010-07-23T13:36:55.130 に答える