无法设置maxJsonLength

我收到这个错误:

内部服务器错误:在使用JSON JavaScriptSerializer进行序列化或反序列化期间出错。 字符串的长度超过maxJsonLength属性中设置的值。

我已经搜索了这个答案,并找到了2个答案,这两个答案似乎都不适合我。 我试图将maxJsonLength设置添加到web.config,但它被忽略。 另外,我尝试在C#代码中设置MaxJsonLength = int.MaxValue; 但我使用MVC 2.0,它似乎只适用于MVC 4? 任何人都可以帮助我正确设置maxJsonLength属性吗? 这是我得到错误的地方。

 public override void OnActionExecuted(ActionExecutedContext filterContext)
    {
        var result = filterContext.Result as ViewResult;
        if (result == null)
        {
            return;
        }

        var jsonResult = new JsonResult
                             {
                              Data = result.ViewData.Model, 
                              JsonRequestBehavior = JsonRequestBehavior.AllowGet
                             };


        filterContext.Result = jsonResult;
    }

我不确定它是否有效,但我找到了一些解决方案,请在下面尝试

<configuration> 
   <system.web.extensions>
       <scripting>
           <webServices>
               <jsonSerialization maxJsonLength="2147483644"/>
           </webServices>
       </scripting>
   </system.web.extensions>
</configuration> 

要么

public ActionResult SomeControllerAction()
{
  var jsonResult = Json(veryLargeCollection, JsonRequestBehavior.AllowGet);
  jsonResult.MaxJsonLength = int.MaxValue;
  return jsonResult;
}

明白了,使用下面的代码

 public ActionResult MyFancyMethod()
 {
     var serializer = new JavaScriptSerializer { MaxJsonLength = Int32.MaxValue };
     var result = new ContentResult
     {
         Content = serializer.Serialize(myBigData),
         ContentType = "application/json"
     };
     return result;
}
链接地址: http://www.djcxy.com/p/42057.html

上一篇: Can't set maxJsonLength

下一篇: The length of the string exceeds the value set on the maxJsonLength property