Jquery asp mvc 2返回json结果

Jquery asp mvc 2返回json结果,jquery,asp.net-mvc-2,Jquery,Asp.net Mvc 2,试图以jsonresult的形式返回字典,字典中的元素数>3.6k; 我的代码: $('go')。单击(函数(){ $(“#content”).empty().html(“”); $.ajax({ 键入:“POST”, url:“”, async:true, 数据:{ 块:$('input[name=block]:checked').attr('value'), 类型:$('input[name=type]:checked').attr('value'), 开始:$('begindate').a

试图以jsonresult的形式返回字典,字典中的元素数>3.6k; 我的代码:

$('go')。单击(函数(){
$(“#content”).empty().html(“”);
$.ajax({
键入:“POST”,
url:“”,
async:true,
数据:{
块:$('input[name=block]:checked').attr('value'),
类型:$('input[name=type]:checked').attr('value'),
开始:$('begindate').attr('value')+“”+$('begintime').attr('value'),
结束:$('enddate').attr('value')+“”+$('endtime').attr('value'))
},
数据类型:“json”,
成功:功能(响应){
警报(响应);
$.plot($(“#内容”),repsonse);
}
});
});
和服务器端:

public JsonResult LoadContent(string block,string type,string begin,string end) {
        List<FinalResult> result = Core.LetThePartyBegin(DateTime.Parse(begin), DateTime.Parse(end), block);
        Dictionary<DateTime, double> returnValue = new Dictionary<DateTime, double>();
        result.ForEach(p =>
            p.Result.ForEach(q => returnValue.Add(p.Datetime + new TimeSpan(0, 0, q.Number), q.W)));
        return Json(returnValue);
    }
publicJSONResult加载内容(字符串块、字符串类型、字符串开始、字符串结束){
List result=Core.LetThePartyBegin(DateTime.Parse(begin)、DateTime.Parse(end)、block);
Dictionary returnValue=新字典();
ForEach(p=>
p、 ForEach(q=>returnValue.Add(p.Datetime+newtimespan(0,0,q.Number),q.W));
返回Json(returnValue);
}
所以,Json(returnValue)包含3600个值,我得到的错误是500个内部服务器错误; 如果我设置Json(returnValue.Take(100)),它就会工作。
jsonresult的大小有任何限制吗?

ajax响应有一个最大大小。(我不确定,但我想是400万)

可能您的预期响应可能大于此最大值。这也解释了当返回小于最大大小的子集时,它为什么会起作用


检查详细的错误消息

其中一个日期未解析。你确定它们都有效吗?

你能提供返回的json的起始字符20和结束字符20吗,这可能有助于定位错误。如何??它的简单字典,不知道如何显示错误的详细信息?由于某种原因,请参阅@David Murdoch的答案MS选择不遵循JsonResult的web配置设置。。。
public JsonResult LoadContent(string block,string type,string begin,string end) {
        List<FinalResult> result = Core.LetThePartyBegin(DateTime.Parse(begin), DateTime.Parse(end), block);
        Dictionary<DateTime, double> returnValue = new Dictionary<DateTime, double>();
        result.ForEach(p =>
            p.Result.ForEach(q => returnValue.Add(p.Datetime + new TimeSpan(0, 0, q.Number), q.W)));
        return Json(returnValue);
    }