Прервать длительность OutputCache программно в asp.net mvc - PullRequest
4 голосов
/ 29 июля 2009

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

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

Итак, есть ли способ программно прервать длительность кэша страниц?

Ответы [ 3 ]

7 голосов
/ 29 июля 2009
0 голосов
/ 30 июля 2009

Вы также можете использовать HttpCachePolicy.AddValidationCallback () . Общая идея заключается в том, что когда страница отображается и вставляется в кэш, этот обратный вызов вставляется вместе со страницей. При извлечении страницы из кэша вызывается обратный вызов и делается окончательное определение того, является ли кэшированная страница устаревшей (и должна быть загружена) или действительной (и должна обслуживаться). См. Пример AuthorizeAttribute . Если страница становится устаревшей действительно редко, тем не менее, вам может быть лучше использовать метод RemoveOutputCacheItem (), как упомянуто в другом ответе.

0 голосов
/ 29 июля 2009

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

...