这是我在此的头一篇博文。
我编写了一个 CMS,它允许开发人员以 WebUserControls 的形式编写自己的插件。用户可以(通过 TinyMCE)将这些插件插入到内容中。这是使用 LoadControl 方法以编程方式完成的,添加到控件层次结构并设置它的属性。到目前为止一切都很好。
我想允许开发人员在他们的 WebUserControls 上使用 OutputCache,但是这些控件需要被 WebUserControl 的属性缓存。例如,开发人员编写了一个 WebUserControl color.ascx,它具有属性 Color (Red|Green|Blue),因此根据该属性的值,缓存可以存储红色、绿色和蓝色版本。
我遇到的问题是一个页面可以有多个,比如说三个,color.ascx 控件(红色、绿色和蓝色),通过 LoadControl 动态加载。缓存后,LoadControl 方法正确返回 PartialCachingControl,但刷新页面时它始终是缓存中的最后一个版本,即页面显示 3 Blue 而不是 Red、Green 和 Blue。
LoadControl(或通过其他方式)有没有办法从缓存中加载正确的版本,即使用 Color 属性,我应该如何使用 OutputCache 来确保它基于 WebUserControls 属性保存到缓存中?
谢谢你的帮助。