2014-09-26 4 views
3

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

<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

ответ

11

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

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

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

+2

Удивительно, что, похоже, выполняет эту работу красиво! Нужно ли вам указывать параметры кэша в строке, поскольку, похоже, он не отображает какие-либо параметры кеша, объявленные в элементе рендеринга? –

+1

@RobEarlam, насколько я знаю, настройки кэша для элемента рендеринга берутся только для динамической привязки. –

0

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

+0

Добро пожаловать в StackOverflow. Это профессиональный сайт Q & A. Пожалуйста, посетите [ответ] – afzalex

Смежные вопросы