[转]ASP.NET MVC Json()处理大数据异常解决方法 json maxjsonlength

本文转自:http://blog.csdn.net/blacksource/article/details/18797055

先对项目做个简单介绍:

整个项目采用微软的ASP.NET MVC3进行开发,前端显示采用EasyUI框架,图表的显示用的是Highcharts,主要进行曲线图的绘制,这样比较形象地描绘出变化的趋势。由于数据量比较大(大于1000,000条记录),而highcharts接受的数据类型为json格式,所以controller从数据库中取出的数据需要先格式化成json,然后再传到前端。平时一直采用MVC的Json()将数据序列化成json格式,但是由于此次数据量较大,所以曲线不显示,所以一直以为是由于数据量较大,highcharts插件不支持100w级数据,后来听人说highcharts本身是支持100w级数据的。最后采用firebug调试才发现出现了错误:“使用JSON JavaScriptSerializer进行序列化或反序列化时出错。字符串的长度超过了为maxJsonLength属性设置的值”,网上也找了不少解决方案,几乎无一例外说的是在web.config的节点下添加:

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

试过后发现曲线还是没出来,最后拿出杀手锏:谷歌翻译成英文,再次搜索,最后终于在stackoverflow上找到解决之法:

public ActionResult GetLargeJsonResult()
{
  return new ContentResult
    {
        Content = new JavaScriptSerializer { MaxJsonLength = Int32.MaxValue }.Serialize(myBigdata),
        ContentType = "application/json"
    };
}

具体网址:http://stackoverflow.com/questions/4155014/json-asp-net-mvc-maxjsonlength-exception

这里不得不大赞StackOverflow,好多问题都是在上面找到solution,而且上面还有非常多的好心人士热心细致的回答问题,我提了好几个问题都最终得到所谓Geek的帮助并得以解决。这里,我只想说声:谢谢。

时间: 2024-08-25 22:30:42

[转]ASP.NET MVC Json()处理大数据异常解决方法 json maxjsonlength的相关文章

这算是ASP.NET MVC的一个大BUG吗?

这是昨天一个同事遇到的问题,我觉得这是一个蛮大的问题,而且应该不是ASP.NET MVC的设计者有意为之,换言之,这可能是ASP.NET MVC的一个大Bug.StackOverflow上也有对这个问题的描述http://stackoverflow.com/questions/1775170/asp-net-mvc-modelstate-clear 闲话少说,我们通过一个简单的问题重新这个问题.首先我们 定义了如下一个默认的HomeController,它具有一个默认Action方法Index.

【第二篇】ASP.NET MVC快速入门之数据注解(MVC5+EF6)

目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策略(MVC5+EF6) [第四篇]ASP.NET MVC快速入门之完整示例(MVC5+EF6) [番外篇]ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6) 请关注三石的博客:http://cnblogs.com/sanshi 数据库连接字符串 上一篇文章中,我们使用MVC的

ASP.NET MVC动态加载数据

ASP.NET MVC动态加载数据,一般的做法是使用$.each方法来循环产生tabel: 你可以在html时先写下非动态的部分: <table> <tr> <th style="width:10px;"><input id="SelectAll" type="checkbox" /></th> <th>ID</th> <th>Port_Start&l

大数据开发经验分享:学习大数据开发的方法

学习新的知识,最重要的就是学习方法,有一个好的学习方法会起到事半功倍的效果.学习大数据开发的方法有哪些? 一.学会爱数据数据科学是一个广泛而模糊的领域,这使得它很难学习.没有动力,你最终会中途停止对自己失去信心.你需要些东西来激励你不断学习,即使是在半夜公式已经开始变的模糊,你还是想探究关于神经网络的意义.对于小白学习大数据需要注意的点有很多,但无论如何,既然你选择了进入大数据行业,那么便只顾风雨兼程.正所谓不忘初心.方得始终,学习大数据你最需要的还是一颗持之以恒的心. 二.在实践中学习学习神经

用bootstrap兼容ie各大浏览器的解决方法

以bootstrap为框架常常会出现不兼容ie各大浏览器的问题,用以下代码基本可以解决,一般在<head></head>加入以下代码后,网页可能还一些比较不美观,再写一点css hack就可以了,如果加入以下代码网页还是特别乱,请检查一下你的css和js的文件顺序,有加载顺序的... <!--[if lte IE 6]> <link rel="stylesheet" type="text/css" href="st

C# ASP.NET Webservice调用外部exe无效的解决方法

最近用asp.net做webservice,其中有个功能是调用执行外部的exe(类似cmd中执行),但执行Process.Start之后就没有结果,同样代码在winform下正常,折腾两天终于找到解决方法 本文参考了以下网页,十分感谢 http://bbs.csdn.net/topics/300053869 http://blog.163.com/[email protected]/blog/static/15737970200862331842368/ 环境:win7 sp1 64位 以及II

php表单提交时获取不到post数据的解决方法

原文:http://blog.csdn.net/whd526/article/details/53263181 博主运行PHP环境:windows+phpstorm+xampp 初学php,用echo $_POST["variable"]和var_dump($_POST) 都获取不到post数据. 解决方法如下: 1.找到php.ini 配置文件,查找enable_post_data_reading变量,确保其打开状态: 2.观察你的运行php的浏览器地址,会发现在PhpStorm中打

SQLServerException:将截断字符串或二进制数据的解决方法

SQLServerException:将截断字符串或二进制数据的解决方法: 最近使用JPA进行保存对象到数据库中怎么也添加不进去,始终报错 主要原因就是你增加的数据字段长度超过数据库中字段所定义长度,去查看一下自己数据库中的字段的长度,一般是误写出来的,查看一下自己数据库中需要自己设置字段类型长度的 字段,修改其字段长度为最大就可以了,Sql server 可以设置其为varchar(max)或者text类型,建议采用varchar(max),便于映射.

js添加的表单在火狐下获取不到数据的解决方法

相信很多朋友在进行网页制作的时候都会遇到过这样的问题:就是用js在表单内添加数据控件之后:在火狐下获取不到数据的问题. 前几天,我在开发一个使用js添加数据填写项的时候,也出现了这样的问题:一开始我还以为是火狐下ajax加载数据出了问题(因为在ie下可以正常的获取到数据):经过测试原来并是这样的问题,而是form放得位置不同, 在form和table结合使用的时候,很多朋友都喜欢这样放: <table>                <form>