无法在浏览器中缓存响应

时间:2014-01-27 23:53:40

标签: .net asp.net-mvc caching

在响应返回行之前的控制器操作中,我有以下代码:

HttpContext.Response.Cache.SetCacheability(HttpCacheability.Public);
HttpContext.Response.Cache.SetExpires(DateTime.Now.AddMonths(1));
HttpContext.Response.Cache.SetAllowResponseInBrowserHistory(true);

当我将此操作称为“/ Controller / Action”时,结果会在浏览器中缓存。但是当我尝试添加任何参数时,例如“/ Controller / Action?v = 1”,那么它永远不会缓存更多(在fiddler中尝试过)。我做错了什么?

1 个答案:

答案 0 :(得分:1)

在控制器操作中使用OutputCache属性。您可以使用Location参数更改缓存的位置。

[OutputCache(Duration = 6000, VaryByParam = "v", Location = OutputCacheLocation.Client)]
public ActionResult MyAction(int? v) {
   return View();
}