MVC中JSON字符长度超出限制
类别:编程学习 浏览量:2922
时间:2015-9-22 MVC中JSON字符长度超出限制
MVC中JSON字符长度超出限制ASP.NET MVC中通过JsonResult返回JSON字符串时,当JSON字符串长度过长时,会报如下错误
异常详细信息: System.InvalidOperationException: 使用 JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength 属性设置的值。
由于原来MVC框架内置的JsonResult代码中,在使用JavaScriptSerializer时,都是采用的默认值,没有从maxJsonLength读取值,即忽略了这个配置,所以通过修改 web.config ,设置 jsonSerialization节点maxJsonLength属性值是无效的
解决方法
1、新建一个控制器扩展类
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、在需要返回大数据的控制器里面如下调用
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
您可能感兴趣
- MVC中BeginForm
- mysql mvcc 隔离级别(详解MySQL事务的隔离级别与MVCC)
- MVC上传文件的方法
- MVC过滤器的用法
- asp.net MVC处理流程
- mysql数据结构讲解(详解MySQL 数据库隔离级别与MVCC)
- php框架使用方法大全(PHP MVC框架中类的自动加载机制实例分析)
- MVC中数据验证
- mvc renderpartial
- mvc中Scripts.Render、Styles.Render
- mysql mvcc 流程(Mysql MVCC机制原理详解)
- MVC中JS获取后台的数据
- MVC使用HandleErrorAttribute自定义异常
- python如何编写一个用户登录系统(Python实现的登录验证系统完整案例基于搭建的MVC框架)
- MVC中获取当前action、controller
- mvc中@helper的用法
- 8月再见 9月你好(8月再见)
- 魔兽世界 设计师爆料,原始版本并无PVP,跨阵营属于返璞归真(魔兽世界设计师爆料)
- 吐槽完《弧光大作战》之后,我们和设计师聊了聊魔兽首款手游的立项初衷和未来(吐槽完弧光大作战之后)
- 魔兽争霸3自定义战役少年杰雷 2(魔兽争霸3自定义战役少年杰雷)
- 今日菜价 芥兰涨幅最高 1.33 ,花菜降幅最高 3.10(今日菜价芥兰涨幅最高)
- 今日菜价 椰菜涨幅最高 3.25 ,水空心菜降幅最高 2.58(今日菜价椰菜涨幅最高)
热门推荐
- mysql索引为什么是b+树(mysql 使用B+树索引有哪些优势)
- mysql char和varchar区别(MySQL CHAR和VARCHAR存储、读取时的差别)
- $(document).ready和window.onload的区别
- jquery无缝滚动代码(jQuery实现表格行数据滚动效果)
- C# string 和 stringbuilder 的区别
- vuex中action的值怎么接(vuex中Getter的用法详解)
- vue自定义组件修饰符(Vue自定义组件使用事件修饰符的踩坑记录)
- js中的this与with关键字
- sql server表字段数据类型(SQL Server数据库中伪列及伪列的含义详解)
- pythonide使用教程(对Python Pexpect 模块的使用说明详解)