次のキャッシュが定義されたページがあります。
<%@ OutputCache Duration="60" VaryByParam="None" %>
そのページ内に、キャッシュしたくないユーザーコントロールがあります。そのコントロールのためだけにオフにするにはどうすればよいですか?
次のキャッシュが定義されたページがあります。
<%@ OutputCache Duration="60" VaryByParam="None" %>
そのページ内に、キャッシュしたくないユーザーコントロールがあります。そのコントロールのためだけにオフにするにはどうすればよいですか?
オプション 1
ページでSubstitution コントロールまたは API を使用します。これにより、代替コントロール内に含まれる部分を除いて、ページ上のすべてをキャッシュできます。
http://msdn.microsoft.com/en-us/library/ms227429.aspx
これを使用する良い方法の 1 つは、html を文字列としてレンダリングする単純なサーバー コントロールとしてコントロールを実装することですが、これはページのコンテキストで (つまり、正しいクライアント ID を使用して) 行われます。Scott Guthrie は、これがどのように機能するかを示す非常に良い例を示しています。ちなみに、AJAX呼び出しでもうまく機能します...
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 呼び出しを含む) を安全にキャッシュすることができ、ページ間で変化するのは呼び出しのレンダリング結果のみです。