Есть ли способ заставить OutputCache игнорировать главную страницу в asp.net mvc? - PullRequest
4 голосов
/ 20 января 2010

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

Я использую следующий код:

[OutputCache(Duration=3000, VaryByParam={params})]  
public ActionResult {actionName}({params})  
{  
    {codeGoesHere}  
}

Ответы [ 2 ]

1 голос
/ 20 января 2010

Была концепция " кэширование пончиков " (исключая части страницы из кэша вывода), но это не удалось сделать в asp.net MVC 1. Для решения вашей проблемы вы можетепопробуйте этот обходной путь .

1 голос
/ 20 января 2010

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

...