不能设置maxJsonLength
本文关键字:maxJsonLength 设置 不能 | 更新日期: 2023-09-27 17:51:02
我得到这个错误:
Internal Server Error:使用JSON JavaScriptSerializer序列化或反序列化时出现错误。字符串的长度超过maxJsonLength属性上设置的值。
我已经谷歌的答案,并找到了2个答案,这两个似乎都不是为我工作。我已经尝试将maxJsonLength设置添加到web。配置,但它被忽略。同样,我也尝试过在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;
}