3
私は部分ビューをキャッシュするCachedPartial htmlヘルパーを使用しています。私の見解では異なるモデルにUmbraco CachedPartialを使用したキャッシュの部分表示
@Html.CachedPartial("PartialView", MyModel, 3600, true);
、私は次のような状況があります。
@Html.CachedPartial("PartialView", MyModel, 3600, true);
@Html.CachedPartial("AnotherPartialView", MyModel1, 3600, true);
@Html.CachedPartial("PartialView", MyModel3, 3600, true); // I want to reuse partial view
は、第1および第3のビューは、同一であることを思え
ためのCachedPartial
...モデルパラメータによって部分的にキャッシュさせる方法を
?
私は
@Html.CachedPartial("PartialView", MyModel, 3600, true, false, new ViewDataDictionary(MyModel3));
が、同じものを使用しようとしました。
編集:私はDZLとは異なるアプローチを使用して、あなたがの独自の実装を作成する必要がありますことをしたい場合には、
public static IHtmlString CachedPartial(this HtmlHelper helper, string partialViewName, object model, string cacheKey = null)
{
if (string.IsNullOrWhiteSpace(cacheKey)) {
return helper.CachedPartial(partialViewName, model, AppSettings.PartialCachingSeconds, true);
}
Func<object, ViewDataDictionary, string> fc = (o, v) => cacheKey;
return helper.CachedPartial(partialViewName, model, AppSettings.PartialCachingSeconds, true, contextualKeyBuilder: fc);
}
、その後
@Html.CachedPartial("PartialView", MyModel, "a_key");
@Html.CachedPartial("AnotherPartialView", MyModel1);
@Html.CachedPartial("PartialView", MyModel3, "another_key"); // I want to reuse partial view
アイデアをお寄せいただきありがとうございます。私の編集した投稿をご覧ください:) –
@SnakeEyes great - バージョン7以上で動作します。あなたがそのアプローチを使用したい場合は、拡張メソッドの必要はありません、それは直接書くことができます、私の編集された答えを参照してください - それを簡素化したい場合:) –