我有一个使用此OutputCache的用户控件:
<%@ OutputCache Duration="86400" VaryByControl="LnkBtnTopVanzari" %>
VaryByControl 是我用来切换 updatePanel 中包含的 multiView 的有效视图的链接按钮的ID。
问题在于,当我按下该链接按钮时,页面会执行完整回发,并且视图不会切换。
如果我删除了outputCache指令,一切正常(按下链接按钮,正确的视图通过ajax显示)。
你知道我错在哪里吗?
感谢。
答案 0 :(得分:1)
VaryByControl参数用于根据您指定的控件的值而变化。由于链接按钮的值始终相同,因此缓存不会发生变化。
我认为这是用于下拉列表等控件,根据列表中的选定值,输出可能会有所不同。
您可能想尝试使用VaryByParam并将链接按钮更改为超链接,将视图指定为查询参数,或尝试使用VaryByCustom。否则,您可能会将视图内容拆分为单独的用户控件,这些控件本身会被缓存输出,将多视图和链接按钮保留在任何缓存之外。