【发布时间】:2011-03-04 12:13:50
【问题描述】:
我有一个包含用户控件的页面。页面结构如下图:
如果您看不到上面的图片,请在http://i54.tinypic.com/2r4id5f.jpg查看。现在,除了UserControl的内容,我想缓存整个页面。我尝试在 .aspx 页面中使用 OutputCache 属性,但它也缓存了 UserControl 的内容。
请告诉我如何才能缓存除用户控件之外的页面内容。
提前致谢。
【问题讨论】:
我有一个包含用户控件的页面。页面结构如下图:
如果您看不到上面的图片,请在http://i54.tinypic.com/2r4id5f.jpg查看。现在,除了UserControl的内容,我想缓存整个页面。我尝试在 .aspx 页面中使用 OutputCache 属性,但它也缓存了 UserControl 的内容。
请告诉我如何才能缓存除用户控件之外的页面内容。
提前致谢。
【问题讨论】:
我认为您可以使用asp.net Substitution control 来实现这一点。这是ScottGu walking through an example的链接。
基本的想法是你像往常一样缓存整个页面,但标记可以为每个请求替换的替换部分。
【讨论】:
我想你正在寻找VaryByControl。还可以查看this post 的片段缓存
【讨论】:
【讨论】:
您是否尝试将@OutputCache 添加到用户控件和页面,但用户控件设置了varyByParam="qsvalue;postvalue",其中qsvalue 是您为页面的每次调用随机生成的查询字符串,后值相同用于回发。
用户控件仍然会被缓存,但理论上它不应该被缓存命中,因为 qsvalue/postvalue 总是与缓存的不同。它可能无法很好地扩展 - 最好将持续时间设置为最短,以防止它们在缓存中堆积。
【讨论】: