asp.net - 包含购物车的页面的OutputCache?

时间:2011-04-02 15:38:37

标签: asp.net

我有一个母版页,在一个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。

但它似乎仍然提供旧的缓存页面......

你知道为什么吗?

1 个答案:

答案 0 :(得分:0)

varyByControl基于指定控件的值工作。尝试进行http嗅探(使用类似fiddler http://www.fiddler2.com/fiddler2/之类的东西)并比较发送到服务器的值以供控制。

在您的情况下,在HTTP请求中查找“shoppingCartControl”的值,并查看发送到服务器的值在两种情况之间是否真的不同。