3

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

4

1 回答 1

1

最好在客户端执行此操作,尤其是考虑到 Sitefinity 的团队正在执行不应缓存输出的 Login Status 羽毛小部件中的操作:

视图包含两个 div,它们最初是隐藏的,并根据用户的状态(通过 Web 服务检索)通过客户端上的 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事件并查看更改的页面是否是您的父/组页面。如果是这样,那么您可以使用 API 获取其所有子页面 (PageData),并将它们的BuildStamp属性增加 1。这将使它们的缓存无效。更多信息在这里:http ://docs.sitefinity.com/tutorial-subscribe-to-events-using-dataprovider-or-manager-class

于 2016-08-22T07:06:57.447 回答