私は私が使用している、私の見解ではASP.NET MVC 3で利用可能な新しいページの部分的なキャッシュを使用しようとしています:ページの部分的なキャッシュとVaryByParam 3
<% Html.RenderAction("RenderContent", Model); %>
どちらをコントローラメソッドを呼び出します。
[Authorize]
[OutputCache(Duration = 6000, VaryByParam = "*", VaryByCustom = "browser")]
public ActionResult RenderContent(Content content)
{
return PartialView(content);
}
元のビューと部分ビューの両方が同じビューモデルを使用しています。
が問題になる - RenderContent()
は、どのビューモデルに渡されても常に同じキャッシュHTMLを返します。私が理解できない何かがVaryByParam
ですか?
、キャッシュワイズ?また、VaryByParamは、アクションメソッドに渡されたモデルとは何の関係もありません。このメソッドは、ブラウザの*メソッドによって呼び出されるパラメータ(クエリ文字列、フォームなど)と関連しています。 – bzlm
呼び出しアクションメソッドでキャッシュが指定されていません。 –
@bzlm、部分ページキャッシュ*は入力パラメータと関係しますが、クエリ文字列/フォームフィールドではありません。 http://weblogs.asp.net/scottgu/archive/2010/12/10/announcing-asp-net-mvc-3-release-candidate-2.aspx、セクション出力キャッシュの改善を参照してください。 – Carvellis