在ASP.NET MVC的JavaScriptSerializer过程中出现MaxJsonLength异常

 2023-02-17    402  

问题描述

在我的控制器动作之一中,我正在返回一个非常大的JsonResult填充网格.

我得到以下InvalidOperationException例外:

在ASP.NET MVC的JavaScriptSerializer过程中出现MaxJsonLength异常

使用JSON javaScriptSerializer序列化或进行序列化的错误.字符串的长度超过了maxjsonlength属性上的值.

不幸的是,将maxJsonLength设置为web.config中的属性没有任何效果.

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

我不想像这个所以答案.

在我的研究中,我遇到了此博客文章建议绕过此行为.

这是唯一的解决方案吗?
这是ASP.NET MVC中的错误吗?
我想念什么吗?

任何帮助都将不胜感激.

推荐答案

看来这已经在mvc4中固定.

您可以做到这一点,这对我来说很好:

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

其他推荐答案

您还可以使用 ContentResult AS 在这里建议而不是子分类 JsonResult .

var serializer = new JavaScriptSerializer { MaxJsonLength = Int32.MaxValue, RecursionLimit = 100 };

return new ContentResult()
{
    Content = serializer.Serialize(data),
    ContentType = "application/json",
};

其他推荐答案

不幸的是,web.config设置为被默认的JSONRESULT实现忽略.因此,我想您需要实现自定义JSON结果来克服此问题.

以上所述是小编给大家介绍的在ASP.NET MVC的JavaScriptSerializer过程中出现MaxJsonLength异常,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/34249.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。