[Json]使用 JSON JavaScriptSerializer 序列化或還原序列化期間發生錯誤。字串的長度超過在 maxJsonLength 屬性上設定的值。
之前有陣子,在用Ajax時經常將view轉為Json字串再return回來,有次可能是因為那個partialView轉JsonString的長度太長了,導致發生了「用 JSON JavaScriptSerializer 序列化或還原序列化期間發生錯誤。字串的長度超過在 maxJsonLength 屬性上設定的值。」的錯誤。爬文後,找到的解決方法就是在controller override掉 Json()的function。
解決方法:
*重寫Controller的Json方法,設定序列化或反序列化時字串的長度為Int32最大值
/// 重寫Controller的Json方法,設定序列化或反序列化時字串的長度為Int32最大值 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 }; }
留言
張貼留言