[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
};
}
留言
張貼留言