ASP.NET UserControl Кэширование - PullRequest
1 голос
/ 12 июня 2010

Эта штука сводит меня с ума. У меня есть UserControl, который называется WebUserControl.

Мне нужно кэшировать этот элемент управления, поэтому я помещаю в 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 Ответ

3 голосов
/ 13 июня 2010

Вы понимаете, что VaryByParam создает новую запись в OutputCache для каждого переменного набора параметров в HTTP GET / POST QueryString .

Установка свойства FeedName в ссылке на пользовательский элемент управления не приведет к изменению кэша для пользовательского элемента управления.

Что именно вы пытаетесь достичь в отношении кеширования здесь?

Я думаю, что вы ищете VaryByControl

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...