JSON, ASP.NET MVC - MaxJsonLength exception JSON, ASP.NET MVC - MaxJsonLength exception json json

JSON, ASP.NET MVC - MaxJsonLength exception


Here is another custom JsonResult (CorrectJsonResult) which handles larger serialization limits that the default 4MB allowed by JavascriptConverter.

And another example which uses ContentResult instead of JsonResult subclass.

public ActionResult GetLargeJsonResult(){  return new ContentResult  {    Content = new JavaScriptSerializer { MaxJsonLength = Int32.MaxValue }.Serialize(myBigdata),    ContentType = "application/json"  };}


I have extended the base class Controller and work great:

ControllerExtensions class:

namespace SCAWEB.Helpers{    public static class ControllerExtensions    {        #region Json        public static int MaxJsonLength{get;set;}        static ControllerExtensions()        {            MaxJsonLength = 2147483644;        }        public static System.Web.Mvc.JsonResult LargeJson(this System.Web.Mvc.Controller controlador, object data)        {            return new System.Web.Mvc.JsonResult()            {                Data = data,                MaxJsonLength = MaxJsonLength,            };        }        public static System.Web.Mvc.JsonResult LargeJson(this System.Web.Mvc.Controller controlador, object data, System.Web.Mvc.JsonRequestBehavior behavior)        {            return new System.Web.Mvc.JsonResult()            {                Data = data,                JsonRequestBehavior = behavior,                MaxJsonLength = MaxJsonLength            };        }        //TODO: You can add more overloads, the controller class has 6 overloads        #endregion    }}

MyController class:

using SCAWEB.Helpers;namespace SCAWEB.Controllers{    public class VentasController : Controller    {        public ActionResult VentasList (){            //Todo: All the action code            //return this.Json(myData);            return this.LargeJson(myData);//Here I use my extensions        }    }}

You can especify the max length in your code:

ControllerExtensions.MaxJsonLength = 1073741824;//1GB