使用JQuery Ajax将Javascript数组传递给控制器

时间:2018-10-09 07:29:20

标签: javascript jquery ajax asp.net-mvc

我想使用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数组长度很大时,则什么也没有发生。

2 个答案:

答案 0 :(得分:2)

尝试从ajax调用和Controller(从[HttpGet]更改为[HttpPost])将类型从GET更改为POST 记住:

  

发送数据时,GET方法将数据添加到URL;和   URL的长度受到限制(最大URL长度为2048个字符

答案 1 :(得分:0)

我认为您应该将 GET 替换为 POST