Подстановка кеша вывода asp.net с обратной передачей в пользовательском управлении

У нас есть сайт, на котором все страницы выводятся в кэше, т.е. кеширование выполняется на уровне aspx с VaryByParam = "*". Теперь есть требование сделать gallup control, то есть небольшой вопрос «Как этот сайт у вас работает?» а затем, когда пользователь нажимает на ответ, отображаются результаты.

Gallup реализован в виде пользовательского элемента управления, который добавляется на главную страницу, поэтому группы Gallup могут быть добавлены на любую страницу, для которой создается Gallup в cms. Проблема в том, что кеш вывода, естественно, кэширует все щелчки, поэтому, когда пользователь № 2 голосует, он видит результаты, которые были вычислены после первого голосования по этой альтернативе.

Сейчас пытаюсь использовать подстановку кеша. Я добавил тег asp: Substition там, где раньше находился пользовательский элемент управления, динамически загружал элемент управления и отображал его (используя этот подход http://coderwall.com/p/4ajzqq). Проблема в том, что постбэки, запускаемые голосованием, никогда не запускаются. Очевидно, метод, который выполняет элемент управления подстановкой, загружен за пределами жизненного цикла страницы или слишком поздно.

Любые идеи?

С уважением, Матиас


person Mathias Rönnlund    schedule 12.09.2012    source источник


Ответы (2)


Я решил эту проблему, пропустив элемент управления подстановкой и просто использовал пользовательский элемент управления как обычно, поэтому представление gallup / question было кэшировано. Затем в обработчике щелчков для альтернативных ответов я добавил Response.Cache.SetNoServerCaching();, который исключил представление результатов из кеша вывода, и, следовательно, он был обновлен должным образом.

person Mathias Rönnlund    schedule 13.09.2012

Также можно использовать Response.Cache.SetNoServerCaching () в Global.asax, используя VaryByCustom. Для этого просто требуется определить в Global.asax, является ли страница постбэком или нет. Здесь это пример кода.

person Iucounu    schedule 12.06.2015