To allow GET requests, set JsonRequestBehavior to AllowGet

Mohamed Sahir picture Mohamed Sahir · Feb 13, 2017 · Viewed 42.7k times · Source

I have bound bulk records in a Kendo UI grid. The response is returned from Json.

I am getting Error while using below format:

Problem Code : Method 1:

public JsonResult KendoserverSideDemo(int pageSize, int skip=10)
{
  using (var s = new KendoEntities())
  {
    var total = s.Students.Count();

    if (total != null)
    {
      var data = s.Students.OrderBy(x=>x.StudentID).Skip(skip)
                           .Take(pageSize).ToList();

      return Json(new { total = total, 
                        data = data,
                        JsonRequestBehavior.AllowGet });
    }
    else
    {
      return null;
    }
  }
}

Method 2 : Working fine using this:

public JsonResult KendoserverSideDemo(int pageSize, int skip=10)
{
  using (var s = new KendoEntities())
  {
    var total = s.Students.Count();

    if (total != null)
    {
      var data = s.Students.OrderBy(x=>x.StudentID).Skip(skip)
                           .Take(pageSize).ToList();

      return Json(data, JsonRequestBehavior.AllowGet);
    }
    else
    {
      return null;
    }
  }
}

What is the problem in first Method 1?

Answer

Jamiec picture Jamiec · Feb 13, 2017

You have simple typo/syntax error

return Json(new { total = total, data = data,JsonRequestBehavior.AllowGet });

The JsonRequestBehavior.AllowGet is the second parameter of Json - it shouldnt be part of the object

return Json(new { total = total, data = data }, JsonRequestBehavior.AllowGet);