在我的一个控制器操作中,当我向视图返回超过10000行JsonResult时。 我将得到以下例外情况。
使用JSON JavaScriptSerializer进行序列化或反序列化时出错。字符串的长度超过maxJsonLength属性上设置的值。
我已将web.config中的maxJsonLength属性设置为更高的值,但遗憾的是没有显示如下所示的任何效果:
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483644"/>
</webServices>
</scripting>
</system.web.extensions>
&#13;
当我使用Json类时,我也设置了MaxJsonLength:
public JsonResult GetList(GridPager pager, string queryStr)
{
List<SysExceptionModel> list = _exceptionBLL.GetList(ref pager, queryStr);
var json = new
{
total = pager.totalRows,
rows = list.ToArray()
};
var jsonresults = Json(json);
jsonresults.MaxJsonLength = int.MaxValue;
return jsonresults;
}
这两个设置对我没有帮助。 我很困惑。
一行如下:
<00> 0000688A-85F5-4F72-BE86-85BCADED2DE NULL BBBB BBBB BBBB BBBB BBBB 2015-10-22 02:27:38.000答案 0 :(得分:1)
尝试使用NewtonSoft.Json库。或者尝试覆盖JsonResult,如下例所示:CustomJsonResult
在xml中设置max jsonSerialization并不总是有效。
答案 1 :(得分:0)
在第一个示例中,尝试直接在MaxJsonLength
实例上设置JavaScriptSerializer
属性。根据{{3}},当您显式创建序列化程序的实例时,它不会使用配置文件的jsonSerialization
元素。
JavaScriptSerializer serializer = new JavaScriptSerializer();
serializer.MaxJsonLength = int.MaxValue;