我有以下jquery代码:
客户端javascript代码:
$.ajax({
url: "/MyController/GetOrders",
cache: false, dataType: "json"
}).done(function (data) {
FilloutTable(data.Orders);
});
asp.net-mvc控制器代码:
[CompressFilter]
[AcceptVerbs(HttpVerbs.Get)]
public JsonResult GetOrders()
{
var orders = Model.GetOrders();
return Json(new{Orders= orders}, JsonRequestBehavior.AllowGet);
}
我有一些用户没有看到最新数据的情况。当我让他们清除他们的浏览器缓存并进行硬刷新时,它可以正常工作。
我以为
cache: false,
会保护我免受此请求的任何浏览器缓存。对于仍然可以缓存的内容以及解决方案的任何建议,以确保人们不会获得旧数据的任何建议?
答案 0 :(得分:0)
您可以在操作上设置output cache
属性:
[OutputCache(VaryByParam = "*", Duration = 0, NoStore = true)]
public ActionResult AcyionName()
{
上述代码将禁用特定Action
的缓存。
请注意,您可以阻止controller level
上的缓存,如下所示:
[OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)]
public class ControllerName : Controller
{
// ...
}