Javascript jQuery数据表序列化的记录不超过1000条
我有一个jQuery数据表,它在客户端呈现1500行。我的用户检查行,然后我发送所选行的ID并保存数据 这在前1000行中运行良好,但在检查的任何时候,数据似乎都不会被发布-在开发工具上,对MVC控制器的调用显示了一个500内部服务器错误,但在方法上有一个断点,它不会被命中 如果我选择了1000行,则会命中断点,并传递所有1000个ID。一旦我再添加一行进行检查,断点就不会被命中,但我在开发工具上看到500个内部服务器错误 我的代码如下:Javascript jQuery数据表序列化的记录不超过1000条,javascript,c#,jquery,json,asp.net-mvc,Javascript,C#,Jquery,Json,Asp.net Mvc,我有一个jQuery数据表,它在客户端呈现1500行。我的用户检查行,然后我发送所选行的ID并保存数据 这在前1000行中运行良好,但在检查的任何时候,数据似乎都不会被发布-在开发工具上,对MVC控制器的调用显示了一个500内部服务器错误,但在方法上有一个断点,它不会被命中 如果我选择了1000行,则会命中断点,并传递所有1000个ID。一旦我再添加一行进行检查,断点就不会被命中,但我在开发工具上看到500个内部服务器错误 我的代码如下: $('#saveBtn').click(functi
$('#saveBtn').click(function () {
var dataArr = [];
var rows = $('tr.selected');
var rowData = myTable.rows({ selected: true }).data();
$.each($(rowData), function (key, value) {
dataArr.push(value[0]); //Id is hidden in 1st column of the table
});
$.ajax({
type: 'POST',
url: '@Url.Action("SaveData", "MyController")',
data: JSON.stringify(dataArr),
contentType: 'application/json; charset=utf-8',
success: function (data) {
location.reload();
},
error: function () {
sweetAlert("Error Occurred Saving");
location.reload();
},
});
});
我的MVC控制器非常简单
[HttpPost]
public ActionResult SaveData(List<int> Ids)
{
//private method that just calls to the DB and sets a flag to say that Id was checked
SaveData(Ids);
return new HttpStatusCodeResult(HttpStatusCode.OK);
}
[HttpPost]
公共操作结果保存数据(列表ID)
{
//private方法,它只调用数据库并设置一个标志来表示已检查Id
保存数据(Ids);
返回新的HttpStatusCodeResult(HttpStatusCode.OK);
}
我曾尝试将以下内容添加到我的MVC Web配置中,但当我选择的断点超过1000个时,我仍然没有得到断点命中
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483644"/>
</webServices>
</scripting>
</system.web.extensions>
在配置中添加到appSettings元素会覆盖默认的最大限制,因为ASP.NET会拒绝包含超过1000个元素的请求,这是出于安全考虑
解决此问题的方法之一是在c#中指定json结果的maxlength。
示例:-
jsonResult.MaxJsonLength = 999999999;
return jsonResult
尝试将maxjsonlength属性设置为更高的值。谢谢。一个比我的2147483644更高的值-这不是最大值吗?你可以在哪里设置集合大小?看起来它被限制在1000以内。值是正确的。在SaveData函数中,断点放在哪里了?如果是这样的话,您可以发布代码或检查它是否捕捉到任何错误。这是一个非常愚蠢的问题,但是您是否在数据表上启用了分页?