如何为Sitecore ControllerRendering启用缓存

3
有没有一种方法可以为静态声明在布局中的ControllerRendering启用Sitecore缓存?在Webforms中,您可以像这样声明渲染的缓存设置:

<sc:Sublayout ID=“slMyControl” path=“~/path/to/my/control.ascx” VaryByParm=“true” Cachable=“true” runat=“server” />

然而,当我使用Html helper时,在Controller方法上没有重载来接受缓存参数?

@Html.Sitecore().Controller(“NAMESPACE”, “ACTION”)

我正在运行Sitecore 7.2

2个回答

13
如果您想静态绑定控制器渲染,应该使用html帮助程序上的Rendering()方法。在那里,您可以使用参数定义缓存。
@Html.Sitecore().Rendering("<your rendering definition item id>", new { Cacheable = true, CacheKey = "my_rendering", Cache_VaryByData = true })

参数应该与子布局中使用的名称相同,前缀为Cache_


2
太棒了,看起来它能很好地完成工作!但是你必须内联声明缓存设置吗?因为它似乎没有捕获在渲染项上声明的任何缓存设置。 - Rob Earlam
1
据我所知,渲染项上的缓存设置仅适用于动态绑定。 - Kevin Brechbühl

0

这个方法可行,我已经在控制器渲染中尝试过。您可以通过将其附加到工作进程来验证它,在刷新相同页面时不应该触发断点。这也取决于缓存使用了哪些参数。


欢迎来到StackOverflow。这是一个专业的问答网站。请访问[answer]。 - afzalex

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接