1

我有以下 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,

将保护我免受此请求的任何浏览器缓存。关于此处可能仍缓存的内容的任何建议以及确保人们不会获得旧数据的解决方案的任何建议?

4

1 回答 1

0

您可以output cache在 Action 上设置属性:

    [OutputCache(VaryByParam = "*", Duration = 0, NoStore = true)]
    public ActionResult AcyionName()
    {

上面的代码将禁用特定的缓存Action

请注意,您controller level也可以按以下方式阻止缓存:

[OutputCacheAttribute(VaryByParam = "*", Duration = 0, NoStore = true)]
public class ControllerName : Controller
{
     // ... 
 }
于 2013-09-16T16:32:23.873 回答