【发布时间】:2018-02-21 07:41:47
【问题描述】:
我正在使用 AJAX 将选定的复选框数据发送到控制器。对于少数记录,它可以正常工作,但对于大量和大量记录,它没有向控制器发送任何数据。如何解决这个问题?目前我正在发送 55 条记录,将来会增加。请帮忙。编码如下。
function Continue() {
var arrSchd=[];
var selectedIds="";
var table = $('#Details').DataTable();
table.$('input[type="checkbox"]:checked').each(function(index,val){
var SchdId=$(this).val();
arrSchd.push(SchdId);
})
if(arrSchd.length!=0){
selectedIds=arrSchd.toString();
WaitCursorStart();
$.ajax({
url: "/MultipleEdit/MultiEditChange",
data:{"selectedIds":selectedIds,"STime": $('#STime').val(),"ETime": $('#ETime').val()},
type: 'GET',
contentType: 'application/json;',
dataType: 'json',
success: function (result) {
if (result.success == 'success') {
//some process here
} else {
//some process here
}
}
});
}
}
我什至也尝试过type:'POST'。仍然无法处理大量数据。
【问题讨论】:
-
你遇到了什么异常?
-
我从来没有遇到任何异常。我在发送数据之前使用了加载游标 gif,并且在数据返回成功或失败结果后,游标将停止。现在加载光标只运行,所以我使用 firebug 调试,我发现数据没有发送到控制器
-
如果选择的记录是少数意味着它工作正常
-
听起来没那么大。多少KB?我敢打赌,大多数文件上传都更大。大小不太可能成为问题,除非您的查询字符串太长。您绝对应该为此使用 POST。确保您的 Action 方法具有 [HttpPost] 属性。并删除 contentType: 'application/json;'。如果您仍有问题,请向我们展示您的控制器方法。
-
@Halim 通常 MVC 似乎更喜欢以常规的 form-urlencoded 格式而不是 JSON 接收数据(jQuery 在发送之前为您编码数据对象,使用默认的 form-urlencoded 格式,或者您在 contentType 选项中指定的格式)。有关更多详细信息,请参阅“contentType”选项下的api.jquery.com/jquery.ajax。附言一般来说,如果你不理解一个选项,你可能不应该使用它,或者应该阅读文档:-)
标签: javascript jquery json ajax asp.net-mvc