UserControl中的@OutputCache问题

时间:2010-11-16 16:39:08

标签: c# asp.net

我有一个使用此OutputCache的用户控件:

<%@ OutputCache Duration="86400" VaryByControl="LnkBtnTopVanzari" %>

VaryByControl 是我用来切换 updatePanel 中包含的 multiView 的有效视图的链接按钮的ID。

问题在于,当我按下该链接按钮时,页面会执行完整回发,并且视图不会切换。

如果我删除了outputCache指令,一切正常(按下链接按钮,正确的视图通过ajax显示)。

你知道我错在哪里吗?

感谢。

1 个答案:

答案 0 :(得分:1)

VaryByControl参数用于根据您指定的控件的而变化。由于链接按钮的值始终相同,因此缓存不会发生变化。

我认为这是用于下拉列表等控件,根据列表中的选定值,输出可能会有所不同。

您可能想尝试使用VaryByParam并将链接按钮更改为超链接,将视图指定为查询参数,或尝试使用VaryByCustom。否则,您可能会将视图内容拆分为单独的用户控件,这些控件本身会被缓存输出,将多视图和链接按钮保留在任何缓存之外。