ASP.NET OutPutCache VaryByParam и VaryByHeader с Ajax

Я пытаюсь сделать некоторое использование кэширования 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.

11
задан Denny Ferrassoli 7 May 2010 в 06:41
поделиться

3 ответа

Согласно этой ссылке MSDN , несколько значений в VaryByParam должны разделяться точкой с запятой, а не запятой.

28
ответ дан 3 December 2019 в 02:40
поделиться

Попробуйте использовать www.fiddlertool.com для проверки заголовков и убедитесь, что они передаются в первую очередь.

2
ответ дан 3 December 2019 в 02:40
поделиться

Ваша продолжительность установлена ​​на 5 секунд. Это намеренно? Я подозреваю, что это может иметь какое-то отношение к тайм-ауту вашего кеша по истечении этого периода.

1
ответ дан 3 December 2019 в 02:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: