Ich benutze CachedPartial HTML-Helfer, die diese Teilansicht zwischenspeichert.Cache Teilansicht mit Umbraco CachedPartial für verschiedene Modell
@Html.CachedPartial("PartialView", MyModel, 3600, true);
Aus meiner Sicht habe ich die folgende Situation:
@Html.CachedPartial("PartialView", MyModel, 3600, true);
@Html.CachedPartial("AnotherPartialView", MyModel1, 3600, true);
@Html.CachedPartial("PartialView", MyModel3, 3600, true); // I want to reuse partial view
Es scheint, dass erste und dritte Ansicht ist identisch wegen CachedPartial
...
Wie durch Modellparameter teilweise im Cache machen ?
Ich versuchte
@Html.CachedPartial("PartialView", MyModel, 3600, true, false, new ViewDataDictionary(MyModel3));
aber gleiche Sache zu verwenden.
bearbeiten: habe ich einen anderen Ansatz als DZL und es funktioniert
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);
}
und dann
@Html.CachedPartial("PartialView", MyModel, "a_key");
@Html.CachedPartial("AnotherPartialView", MyModel1);
@Html.CachedPartial("PartialView", MyModel3, "another_key"); // I want to reuse partial view
Danke für die Idee, siehe meinen bearbeiteten Post :) –
@SnakeEyes toll - das funktioniert für Version 7+. Wenn Sie diesen Ansatz verwenden möchten, ist keine Erweiterungsmethode erforderlich, sie kann direkt geschrieben werden, siehe meine bearbeitete Antwort - wenn Sie es vereinfachen möchten :) –