使用AJAX的ASP.NET OutPutCache VaryByParam和VaryByHeader

Den*_*oli 11 asp.net caching outputcache

我正在尝试使用VaryByParam和VaryByHeader进行一些缓存.当一个AJAX请求进来时,我返回一个部分XHTML.当一个常规请求进来时,我发送带有页眉/页脚的部分XHTML页面.

我尝试通过执行以下操作来缓存页面:

[OutputCache( Duration = 5, VaryByParam = "nickname,page", VaryByHeader = "X-Requested-With" )]
Run Code Online (Sandbox Code Playgroud)

但是这不起作用...如果我首先执行常规请求然后运行AJAX调用我得到完整的缓存页面而不是部分,反之亦然.似乎VaryByHeader被忽略了.是因为正常请求中省略了X-Requested-With?或者它正在做VaryByParam或VaryByHeader?

我明显的方法是让AJAX请求调用一个只返回部分页面的不同方法,但是如果可能的话我想避免这种情况.

我正在使用带有OutputCacheAttribute的 ASP.NET MVC 1.0 .

Pet*_*old 28

根据此MSDN参考,VaryByParam中的多个值应以分号分隔,而不是以逗号分隔.