Как разместить пустой массив (из целых) (jQuery -> MVC 3) - PullRequest
6 голосов
/ 20 июля 2011

Используя jQuery, я отправляю массив int в мое приложение MVC 3, помещая массив в параметр данных следующим образом: data: { myIntArray: myIntArray }. В моем контроллере принимающее действие имеет параметр int[] myIntArray.

В большинстве случаев все идет хорошо, кроме случаев, когда myIntArray пусто. В запросе я вижу следующее myIntArray= (обратите внимание, что после "=" нет пробела). В моем контроллере MVC 3 это преобразовывается в массив, содержащий один int: 0.

Мне не кажется, что я делаю что-то ужасно неправильное, публикуя пустой массив. Я могу обойти это, обрабатывая случай, когда массив пуст по-другому. Тем не менее, я чувствую, что это должно быть возможно.

Заранее спасибо.

Дополнительная информация:

  • Я использую jQuery 1.5.1 (не могу обновить для этого проекта).
  • myIntArray является инициализируется с new Array().

1 Ответ

5 голосов
/ 20 июля 2011

Вы можете сделать это:

var myIntArray = new Array();

// add elements or leave empty
myIntArray.push(1);
myIntArray.push(5);

var data = myIntArray.length > 0 ? { myIntArray: myIntArray } : null;

$.ajax({
    url: '@Url.Action("someAction")',
    type: 'POST',
    data: data,
    traditional: true,
    success: function (result) {
        console.log(result);
    }
});

или используйте запрос JSON:

var myIntArray = new Array();
// add elements or leave empty
myIntArray.push(1);
myIntArray.push(5);

$.ajax({
    url: '@Url.Action("someAction")',
    type: 'POST',
    data: JSON.stringify(myIntArray),
    contentType: 'application/json',
    success: function (result) {
        console.log(result);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...