Sitefinity MVC Feather Widgets - предотвращение кеширования

Я использую пакет пера и создаю виджеты пера для Sitefinity 9.1. Я не могу переопределить кэш вывода для виджетов, используя атрибут OutputCache: [OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")], Я не хочу отключать кэширование на уровне страницы, просто на уровне виджета. Как отключить кеширование на уровне виджетов в Sitefinity?

1 ответ

Лучше делать это на стороне клиента, особенно если учесть, что команда Sitefinity делает именно это в виджете перьев "Статус входа", который не должен выводиться в кеше:

Представление содержит два элемента div, которые изначально скрыты и отображаются с помощью javascript на клиенте в зависимости от статуса пользователя (который извлекается с помощью веб-службы):

https://github.com/Sitefinity/feather-widgets/blob/master/Telerik.Sitefinity.Frontend.Identity/Mvc/Views/LoginStatus/LoginStatus.LoginName.cshtml

Код JS:

https://github.com/Sitefinity/feather-widgets/blob/master/Telerik.Sitefinity.Frontend.Identity/Mvc/Scripts/LoginStatus/login-status.js

РЕДАКТИРОВАТЬ: То, что вы можете попробовать, это подписаться на событие PageManager.Executing и посмотреть, была ли страница, которая была изменена, вашей родительской / групповой страницы. Если это так, то вы можете получить все его дочерние страницы (PageData) с помощью API и увеличить их свойство BuildStamp с 1. Это сделает их кеш недействительным. Более подробная информация здесь: http://docs.sitefinity.com/tutorial-subscribe-to-events-using-dataprovider-or-manager-class

Другие вопросы по тегам