我有一个母版页,在一个ContentPlaceHolder中我放了购物车:
<asp:ContentPlaceHolder ID="continutMeniuContulMeu" runat="server">
<asp:UpdatePanel runat="server" ID="updatePanelCos" UpdateMode="Conditional">
<ContentTemplate>
<user:ShoppingCart ID="shoppingCartControl" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
</asp:ContentPlaceHolder>
我现在有一个页面显示所有产品,页面使用上面的母版页并缓存一小时:
<%@ OutputCache Duration="3600" VaryByParam="*" VaryByControl="shoppingCartControl" %>
你看到我想要,当shoppingCart内容被更改并且用户重新访问该页面时,为了反映这个购物车更新,所以我把VaryByControl。
但它似乎仍然提供旧的缓存页面......
你知道为什么吗?
答案 0 :(得分:0)
varyByControl基于指定控件的值工作。尝试进行http嗅探(使用类似fiddler http://www.fiddler2.com/fiddler2/之类的东西)并比较发送到服务器的值以供控制。
在您的情况下,在HTTP请求中查找“shoppingCartControl”的值,并查看发送到服务器的值在两种情况之间是否真的不同。