в asp.net mvc, как я могу передать массив целых чисел в качестве параметра

#jquery #asp.net-mvc #ajax #arrays

#jquery #asp.net-mvc #ajax #массивы

Вопрос:

у меня есть функция контроллера, которая ранее содержала целые числа в качестве каждого раздела в URL (который я настраиваю в файле маршрутизации), но теперь одним из параметров должен быть массив целых чисел. Вот действие контроллера:

     public JsonResult Refresh(string scope, int[] scopeId)
    {
        return RefreshMe(scope, scopeId);
    }
  

в моем javascript у меня было приведенное ниже, но теперь мне нужно, чтобы scopeId был целочисленным массивом.
как я могу настроить URL для публикации с помощью jquery, javascript

    var scope = "Test";
   var scopeId = 3;

  // SCOPEID now needs to be an array of integers

  $.post('/Calendar/Refresh/'   scope   '/'   scopeId, function (data) {
        $(replacementHTML).html(data);
        $(blockSection).unblock();
  }
  

Ответ №1:

Следующее должно выполнить эту работу:

 var scope = 'Test';
var scopeId = [1, 2, 3];

$.ajax({
    url: '@Url.Action("Refresh", "Calendar")',
    type: 'POST',
    data: { scope: scope, scopeId: scopeId },
    traditional: true,
    success: function(result) {
        // ...
    }
});
  

и если вы используете ASP.NET MVC 3 вы также можете отправить запрос в виде объекта JSON:

 $.ajax({
    url: '@Url.Action("Refresh", "Calendar")',
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    data: JSON.stringify({ scope: scope, scopeId: scopeId }),
    success: function(result) {
        // ...
    }
});
  

Ответ №2:

Вот пример из API jquery для $.post()

Пример: передать массивы данных на сервер (по-прежнему игнорируя возвращаемые результаты).

 $.post("test.php", { 'choices[]': ["Jon", "Susan"] }, function() { //do stuff });
  

Комментарии:

1. Я не думаю, что [] in choices[] нужен.

2. @Omar Это был пример на сайте jQuery. Просто задание вырезать / вставить. api.jquery.com/jQuery.post