asp.net mvc中序列化字串長度受限的問題
阿新 • • 發佈:2018-12-28
異常資訊:
異常型別:InvalidOperationException
異常訊息:使用JSON JavaScriptSerializer進行序列化或反序列化時出錯。字串的長度超過maxJsonLength屬性上設定的值
解決方案
1、在web.config上設定MaxJsonLength屬性:
<system.web.extensions> <scripting> <webServices> <jsonSerialization maxJsonLength="20971520"/> </webServices> </scripting> </system.web.extensions>
2、在MVC中,重寫Controller的Json方法,設定序列化或反序列化時字串的長度為Int32最大值:
/// <summary> /// 重寫Controller的Json方法,設定序列化或反序列化時字串的長度為Int32最大值 /// </summary> /// <param name="data"></param>/// <param name="contentType"></param> /// <param name="contentEncoding"></param> /// <param name="behavior"></param> /// <returns></returns> protected override JsonResult Json(object data, string contentType, System.Text.Encoding contentEncoding, JsonRequestBehavior behavior) {return new JsonResult() { Data = data, ContentType = contentType, ContentEncoding = contentEncoding, JsonRequestBehavior = behavior, MaxJsonLength = Int32.MaxValue }; }
方法呼叫:
Json( new { field1 = true, field2 = "value" }, "application/json", Encoding.UTF8, JsonRequestBehavior.AllowGet );