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?
If you need to send JSON in response to a GET, you'll need to explicitly allow the behavior by using JsonRequestBehavior. AllowGet as the second parameter to the Json method. However, there is a chance a malicious user can gain access to the JSON payload through a process known as JSON Hijacking.
What is JsonResult ? JsonResult is one of the type of MVC action result type which returns the data back to the view or the browser in the form of JSON (JavaScript Object notation format).
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);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With