【发布时间】:2017-05-16 15:15:47
【问题描述】:
我有一个在客户端呈现 1500 行的 jQuery 数据表。我的用户检查行,然后我发送所选行的 ID 并保存数据。
这对于前 1000 行运行良好,但任何时间超过检查数据似乎没有被发布 - 在开发工具上,对 MVC 控制器的调用显示 500 内部服务器错误,但在方法它不会被击中?
如果我选择了 1000 行,则断点会被命中,并且所有 1000 个 ID 都会通过。一旦我再添加 1 行进行检查,断点不会被命中,但我在开发工具上看到 500 内部服务器错误?
我的代码如下:
$('#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);
}
我尝试将以下内容添加到我的 MVC Web 配置中,但当我选择超过 1000 个时,我仍然没有遇到断点
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483644"/>
</webServices>
</scripting>
</system.web.extensions>
【问题讨论】:
-
尝试将 maxjsonlength 属性设置为更高的值。谢谢。
-
比我拥有的 2147483644 更高的值 - 这不是它可以达到的最大值吗?
-
您可以在哪里设置集合大小?好像限制在 1000
-
值正确。您将断点放在哪里 - 在 SaveData 函数中?如果是这样,您能否发布代码或检查它是否发现任何错误
-
真的很愚蠢的问题,但是您是否在数据表上启用了分页?
标签: javascript c# jquery json asp.net-mvc