0

我们有一个 ASP.NET Web Forms Sitecore 站点,我们在其中使用了使用 OutputCache 指令、VaryByCustom 属性和 Global.asax 中添加的 GetVaryByCustomString() 方法的 HTML 输出缓存。

是否可以从 GetVaryByCustomString() 方法获取当前控件的句柄?我们在使用此方法和添加到同一页面的多个控件实例时遇到了输出缓存问题。如果我有控件的句柄,我可以根据它的 Sitecore 参数(在这种情况下很重要)分别缓存输出,并且仍然使它与我们的其余缓存策略很好地结合。

4

2 回答 2

0

我不确定您为什么要使用自定义代码来执行此缓存。如果您的控件有一个子布局,那么对于页面上该控件/子布局的每个实例,您可以通过转到 Presentation/Layout Details > Control Properties 并向下滚动到 Caching 部分来激活缓存。在那里,您将检查“可缓存”和“按数据变化”选项。

于 2016-12-06T16:13:30.683 回答
0

似乎无法从 Global.asax 中的 GetVaryByCustomString() 获取当前评估的代码。然而,由于我最初的目标是改变在同一页面中多次出现的 Sitecore 控件的缓存输出,我发现这可以通过列出页面中的所有控件,然后在创建每个控件时递增附加到请求上下文的计数器来实现缓存键并将其附加到键,因为控件以确定性和可靠的顺序布局。

于 2016-12-09T14:49:58.797 回答