开发者

ASP.NET OutPutCache VaryByParam and VaryByHeader with AJAX

开发者 https://www.devze.com 2022-12-29 05:41 出处:网络
I\'m trying to do some caching using VaryByParam AND VaryByHeader. When an AJAX request comes in I return a partial XHTML. Whe开发者_StackOverflow社区n a regular request comes in I send the partial XH

I'm trying to do some caching using VaryByParam AND VaryByHeader. When an AJAX request comes in I return a partial XHTML. Whe开发者_StackOverflow社区n a regular request comes in I send the partial XHTML page with header / footer.

I tried to cache the page by doing:

[OutputCache( Duration = 5, VaryByParam = "nickname,page", VaryByHeader = "X-Requested-With" )]

However this doesn't work... if I do a regular request first then run the AJAX call I get the full cached page instead of the partial and vice-versa. Seems like VaryByHeader is being ignored. Is it because X-Requested-With is omitted on normal requests? Or perhaps it's doing VaryByParam OR VaryByHeader?

My obvious way around this is for AJAX requests to call a different method which only returns partial pages, however I'd like to avoid that if possible.

I'm using ASP.NET MVC 1.0 with the OutputCacheAttribute.


According to this MSDN reference, multiple values in VaryByParam should be semicolon separated, not comma separated.


Try using www.fiddlertool.com to check the headers and see if they are being passed in the first place.


Your Duration is set to 5 seconds. Is this intentional? I suspect might have something to do with your cache timing out after this period.

0

精彩评论

暂无评论...
验证码 换一张
取 消