2016-11-18 2 views
1

У меня есть существующее решение ASP.NET для веб-форм (в Sitecore, если это помогает), где мы добавляем некоторые кеширования, и нужно, чтобы это было безопасно с обратной передачей. Мы используем директиву outputcache с обоими страницами (т. Е. Макеты Sitecore) и элементы управления (подуровни) и VaryByCustom.Как программно установить параметры @outputcache для элементов управления, а не только страниц?

Чтобы программно задать параметры кэширования внутри управления, мы исследуем использование BasePartialCachingControl с ControlCachePolicy, как описано здесь: https://msdn.microsoft.com/en-us/library/system.web.ui.basepartialcachingcontrol(v=vs.100).aspx https://msdn.microsoft.com/en-us/library/system.web.ui.controlcachepolicy(v=vs.100).aspx

Однако, когда жерех: BasePartialCachingControl тег добавляется к элементу управления, как обертки, мы получаем ошибку «Неизвестный серверный тег» asp: BasePartialCachingControl ». Добавление директивы import для пространства имен класса не помогает. Как мы это разрешим? Спасибо.

ответ

0

Sitecore предоставляет вам выходной кеш для пользовательского управления из коробки, вы можете использовать статическое связывание Sitecore для Sublayout и сопоставлять его с вашим пользовательским элементом управления, и есть свойство для кеша, вы можете варьироваться в зависимости от нескольких критерии:

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

и если вы используете динамическое связывание с Sitecore дойдя до sublayout вы можете определить кэширование оттуда, а также в соответствии с разделом кэша:

enter image description here

Если вы хотите для изменения кеша по параметру анотора, проверить эту ссылку: https://briancaos.wordpress.com/2015/12/18/sitecore-sublayout-caching-vary-by-cookie/

+0

Я понимаю, что кэширование Sitecore не очень хорошо работает с обратной передачей. http://stackoverflow.com/questions/3628185/sitecore-turning-on-html-caching-blocks-postback-behavior – Iucounu