ASP.NET UserControl缓存

时间:2010-06-12 14:27:26

标签: asp.net caching user-controls

这件事让我疯了。我有一个名为WebUserControl的UserControl。

我需要缓存此控件,因此我将以下内容放在WebUserControl.ascx中:

<%@ OutputCache Duration="240" VaryByParam="FeedName" %>

然后我有Default.aspx文件,我有:

      <div class="divInnerLeft" id="L1" runat="server">
            <uc1:WebUserControl FeedId="a1" ID="a1" runat="server" FeedName=""/>
       </div>
       <div class="divInnerMiddle" id="M1" runat="server">
            <uc1:WebUserControl FeedId="a3" ID="a3" runat="server" FeedName=""/>
       </div>

在Page_Load事件中,我根据用户首选项设置了FeedName属性。

问题是在最初加载页面后,控件生成正常。但是,在Page_Load事件中,它们不再可用。所以a1和a3为空,我不能为不同的用户设置FeedName。

如何解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:3)

您意识到 VaryByParam 会为 HTTP GET / POST QueryString 中设置的每个不同的parmateter在 OutputCache 中创建一个新条目。

在用户控件引用上设置 FeedName 属性不会改变用户控件的缓存。

你到底想要在缓存方面做些什么?

我认为你要找的是VaryByControl