Sitefinity MVC羽毛小部件 - 防止缓存

时间:2016-08-18 23:17:23

标签: sitefinity sitefinity-feather

我使用羽毛包并为Sitefinity 9.1构建羽毛小部件。我似乎无法使用OutputCache属性覆盖窗口小部件的输出缓存:[OutputCache(NoStore = true, Duration = 0, VaryByParam = "*")]。我不想在页面级别禁用缓存,只是在小部件级别。如何在Sitefinity中的窗口小部件级别禁用缓存?

1 个答案:

答案 0 :(得分:1)

最好在客户端做到这一点,特别是考虑到Sitefinity的团队正在完成登录状态羽毛小部件中的那个,不应该输出缓存:

视图包含两个最初隐藏的div,并通过客户端上的javascript显示,具体取决于用户的状态(通过Web服务检索):

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 事件,并查看更改的页面是否是您的父/组页面。如果是这样,那么您可以使用API​​获取其所有子页面(PageData),并使用1增加其 BuildStamp 属性。这将使其缓存无效。 更多信息:http://docs.sitefinity.com/tutorial-subscribe-to-events-using-dataprovider-or-manager-class