[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
            };
        }









留言

這個網誌中的熱門文章

[Visual Studio]位於網際網路或是限制區域上 或是檔案上標有 web 字樣 所以無法處理該檔案。若希望處理這些檔案 請移除 web 字樣。

[IIS] IIS執行時,發生拒絕存取路徑 問題

[SourceTree]修改使用者帳號密碼