分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

MVC中JSON字符长度超出限制

发布时间:2023-09-06 01:28责任编辑:林大明关键词:MVC

本文导读:在MVC中通过JsonResult返回JSON字符串时,如果字符串长度过长,会抛出使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错,字符串的长度超过了为 maxJsonLength 属性设置的值,下面介绍其解决方法。

ASP.NET MVC中通过JsonResult返回JSON字符串时,当JSON字符串长度过长时,会报如下错误

异常详细信息: System.InvalidOperationException: 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength 属性设置的值。

由于原来MVC框架内置的JsonResult代码中,在使用JavaScriptSerializer时,都是采用的默认值,没有从maxJsonLength读取值,即忽略了这个配置,所以通过修改 web.config ,设置 jsonSerialization节点maxJsonLength属性值是无效的

解决方法

1、新建一个控制器扩展类

C# 代码   复制
namespace WEBMVC.Helpers
{ ???public static class ControllerExtensions ???{ ???????public static int MaxJsonLength{get;set;} ???????public static ControllerExtensions() ???????{ ???????????MaxJsonLength = 2147483644; ???????} ???????public static System.Web.Mvc.JsonResult LargeJson(this System.Web.Mvc.Controller controlador, object data) ???????{ ???????????return new System.Web.Mvc.JsonResult() ???????????{ ???????????????Data = data, ???????????????MaxJsonLength = MaxJsonLength, ???????????}; ???????} ???????public static System.Web.Mvc.JsonResult LargeJson(this System.Web.Mvc.Controller controlador, object data, System.Web.Mvc.JsonRequestBehavior behavior) ???????{ ???????????return new System.Web.Mvc.JsonResult() ???????????{ ???????????????Data = data, ???????????????JsonRequestBehavior = behavior, ???????????????MaxJsonLength = MaxJsonLength ???????????}; ???????} ???????//TODO: You can add more overloads, the controller class has 6 overloads ???}}

2、在需要返回大数据的控制器里面如下调用

 
 
C# 代码   复制
using WEBMVC.Helpers;
namespace WEBMVC.Controllers
{ ???public class VentasController : Controller ???{ ???????ControllerExtensions.MaxJsonLength = 1073741824;//1GB,如果需要单独设置长度,如果不需要,则不设置该值 ???????public ActionResult VentasList (){ ???????????//Todo: All the action code ???????????return ControllerExtensions.LargeJson(myData); ???????} ???}}

MVC中JSON字符长度超出限制

原文地址:http://www.cnblogs.com/cjm123/p/7930364.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved