Pur*_*ome 5 asp.net-mvc caching outputcache varybyparam
我正在尝试在我的ASP.NET MVC网站中使用OutputCaching.问题是,当我尝试更改一个我的查询字符串参数的值时,它将返回所请求的第一个项目的数据!
这是我的代码(改变了param名称)......
[ApiAuthorize]
[HandleErrorAsJson]
public class SearchController : Controller
{
[AcceptVerbs(HttpVerbs.Get)]
[OutputCache(Duration = 60, VaryByParam = "*")]
public ActionResult ScoreCard(string foo, byte? bar, byte? pewpew)
{
..
}
}
Run Code Online (Sandbox Code Playgroud)
这是我正在做这个动作的两个示例调用: -
所以第一次调用的数据(foo = hello world,Pew Pew)返回200 OK.然后第二个api调用返回200 OK但使用前一个调用的数据.
此外,我没有使用任何代理服务器.如果我注释掉OutputCache属性,一切都很好.
我也尝试了以下(每次我需要缓存时手动列出).....
[OutputCache(Duration = 60, VaryByParam = "foo,key,bar,pewpew")]
Run Code Online (Sandbox Code Playgroud)
没运气 :(
请注意我需要确保将"Key"参数作为缓存唯一键的一部分包含在内.我不希望人们搜索相同的东西,但如果第二个人没有正确的密钥,他们不应该得到缓存的结果,而是一个错误信息(技术上,它是401未授权,但无论如何)...
思考?