【发布时间】:2016-12-21 20:25:57
【问题描述】:
我正在使用 CachedPartial html 助手来缓存该部分视图。
@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
似乎第一个和第三个视图相同,因为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
【问题讨论】:
标签: asp.net-mvc caching umbraco