Я пытаюсь выполнить кэширование, используя VaryByParam и VaryByHeader. Когда приходит запрос AJAX, я возвращаю частичный XHTML. Когда приходит обычный запрос, я отправляю частичную XHTML-страницу с верхним/нижним колонтитулом.
Я попытался кэшировать страницу, выполнив:
[OutputCache( Duration = 5, VaryByParam = "nickname,page", VaryByHeader = "X-Requested-With" )]
Однако это не работает... если я сначала делаю обычный запрос, а затем запускаю вызов AJAX, я получаю полную кэшированную страницу вместо частичной и наоборот. Похоже, что VaryByHeader игнорируется. Это потому, что X-Requested-With опущен в обычных запросах? Или, возможно, он выполняет VaryByParam ИЛИ VaryByHeader?
Мой очевидный способ обойти это - для запросов AJAX вызвать другой метод, который возвращает только частичные страницы, однако я хотел бы избежать этого, если это возможно.
Я использую ASP.NET MVC 1.0 с атрибутом OutputCacheAttribute.