在响应返回行之前的控制器操作中,我有以下代码:
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中尝试过)。我做错了什么?
答案 0 :(得分:1)
在控制器操作中使用OutputCache属性。您可以使用Location参数更改缓存的位置。
[OutputCache(Duration = 6000, VaryByParam = "v", Location = OutputCacheLocation.Client)]
public ActionResult MyAction(int? v) {
return View();
}