Передать массив Javascript в контроллер с помощью JQuery Ajax - PullRequest
0 голосов
/ 09 октября 2018

Я хочу передать значение выбранного флажка ввода в контроллер, используя 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 голосов
/ 09 октября 2018

Я думаю, вам следует заменить GET на POST

0 голосов
/ 09 октября 2018

Попробуйте изменить тип с GET на POST с вызова ajax и с Controller ([HttpGet] на [HttpPost]). Помните:

при отправке данных метод GET добавляет данные в URL;длина URL-адреса ограничена ( максимальная длина URL-адреса составляет 2048 символов )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...