有没有理由在我的asp.net-mvc网站上缓存这个ajax调用?

时间:2013-09-16 15:43:59

标签: jquery ajax asp.net-mvc caching

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

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

1 个答案:

答案 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
{
     // ... 
 }