Как я могу включить кэширование для Sitecore ControllerRendering

Есть ли способ включить кэширование Sitecore для ControllerRendering, объявленного статически в макете? В Webforms вы можете объявить настройки кэширования рендеринга следующим образом:

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

Однако, когда я использую помощник Html, метод контроллера не перегружается, чтобы принимать параметры кэширования?

@Html.Sitecore().Controller("NAMESPACE", "ACTION")

Я использую Sitecore 7.2


person Rob Earlam    schedule 26.09.2014    source источник


Ответы (2)


Если вы хотите статически привязать рендеринг контроллера, вы должны использовать метод Rendering() в помощнике html. Там вы можете определить кеширование с параметрами:

@Html.Sitecore().Rendering("<your rendering definition item id>", new { Cacheable = true, CacheKey = "my_rendering", Cache_VaryByData = true })

Параметры должны иметь то же имя, что и в подмакете, с префиксом Cache_.

person Kevin Brechbühl    schedule 26.09.2014
comment
Удивительно, кажется, это хорошо справляется со своей задачей! Нужно ли вам объявлять настройки кеша встроенными, поскольку, похоже, они не подхватывают какие-либо настройки кеша, объявленные в элементе рендеринга? - person Rob Earlam; 29.09.2014
comment
@RobEarlam, насколько я знаю, настройки кеша для элемента рендеринга используются только для динамической привязки. - person Kevin Brechbühl; 29.09.2014

Это работает, и я попробовал это с рендерингом контроллера. Вы можете проверить это, подключив его к рабочему процессу, и он не должен сталкиваться с точкой останова при обновлении той же страницы. Это также будет зависеть от того, какие параметры использовались для кэширования.

person T Malik    schedule 30.09.2014
comment
Добро пожаловать в StackOverflow. Это профессиональный сайт вопросов и ответов. Пожалуйста, посетите Как ответить - person afzalex; 01.10.2014