2010-11-16 2 views
2

У меня есть пользовательский элемент управление с этим OutputCache:@OutputCache проблемы в UserControl

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

Где VaryByControl является идентификатором кнопки связи я использую для переключения активного вида мультивидовых, содержащихся в a updatePanel.

Проблема в том, что когда я нажимаю эту ссылку, страница делает полный пост назад и вид не переключается.

Если я удаляю директиву outputCache, все работает отлично (нажатие кнопки ссылки показывает правильный вид через ajax).

Вы знаете, где я ошибаюсь?

Спасибо.

+0

попробуйте установить enableeventvalidation на false .. или можете попробовать использовать substitutioncontrol – genericuser

ответ

1

Параметр VaryByControl может изменяться в зависимости от значения указанного вами элемента управления. Поскольку значение кнопки ссылки всегда будет одинаковым, кеш не изменяется.

Я полагаю, что это предназначено для использования для таких элементов управления, как выпадающие списки, где возможно, чтобы выход отличался в зависимости от выбранного значения в списке.

Возможно, вы захотите попробовать использовать VaryByParam и изменить свою ссылку на гиперссылку, указав представление как параметр запроса или попробовать VaryByCustom. В противном случае, возможно, вы могли бы разделить содержимое своих представлений на отдельные пользовательские элементы управления, которые сами выводятся в кеширование, оставляя кнопку мультивизора и вашу ссылку за пределами кэширования.

Смежные вопросы