我想使用Jquery Ajax将所选输入复选框的值传递给控制器。
var selected = [];
$('.myCheckBox input:checked').each(function() {
selected.push($(this).attr('value'));
});
$.ajax({
url: '@Url.Action("test", "Display")',
type: 'GET',
data: {
MySelectdFile: selected
},
dataType: 'json',
traditional: true,
contentType: 'application/json',
success: function(data) {
alert("OK")
}
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}, complete: function() {
$('#loading').hide();
}
});
[HttpGet]
public ActionResult test(string[] MySelectdFile)
{
foreach(string item in MySelectdFile)
{
//Do Something
}
}
当我的Javascript数组长度很小时,一切正常,但是当我的Javascript数组长度很大时,则什么也没有发生。
答案 0 :(得分:2)
尝试从ajax调用和Controller(从[HttpGet]更改为[HttpPost])将类型从GET更改为POST 记住:
发送数据时,GET方法将数据添加到URL;和 URL的长度受到限制(最大URL长度为2048个字符)
答案 1 :(得分:0)
我认为您应该将 GET 替换为 POST