ActionFilter не выполняется с кэшированным выводом - PullRequest
2 голосов
/ 02 января 2012

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

[OutputCache(CacheProfile = "Default")]
public ActionResult Index()
{
     .....
}

У меня также есть настраиваемый глобальный атрибут, который проверяет каждый запрос на допустимый тип браузера

GlobalFilters.Filters.Add(new BadBrowserAttribute());

OnActionExecuting запускается по мере необходимости во время первого запроса, но не снова, пока не истечет срок действия кэша.

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

Можно ли заставить мой пользовательский атрибут срабатывать каждый раз для кэшированного содержимого?

1 Ответ

0 голосов
/ 02 января 2012

Невозможно, чтобы ваше действие стреляло каждый раз.Когда вы используете кэширование (как в вашем коде), при последующем запросе результаты будут возвращаться из кэша, поэтому действие не будет выполнено.

Обходное решение может заключаться в реализации пользовательского кэширования внутри фильтра действий.Что-то вроде это

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