Как я могу отправить массив int из ajax в c # mvc? - PullRequest
22 голосов
/ 02 февраля 2012

Как я могу отправить массив int из $ .ajax в c # mvc?

Ответы [ 5 ]

36 голосов
/ 02 февраля 2012
$.ajax({
          url: <Url of the action>,
          type: "POST",
          data: JSON.stringify([1,2,3]),
          dataType: "json",
          contentType: 'application/json; charset=utf-8'
});

и в действии.

public ActionResult ReceiveIntArray(int[] ints)
{
   ...
}

MVC должен автоматически проанализировать JSON.

проверить этот вопрос.

2 голосов
/ 02 февраля 2012

Попробуйте решение из этого вопроса :

Установите для свойства traditional значение true перед выполнением вызова get.т.е.:

jQuery.ajaxSettings.traditional = true

$.get('/controller/MyAction', 
    { vals: arrayOfValues }, 
    function (data) {
      ...
    }
1 голос
/ 02 февраля 2012

Я делаю это с помощью простого input:hidden элемента

<input type="hidden" name="elements" value='@String.Join(",", ViewBag.MyArray)' />

И в коде JavaScript я передаю его в виде строки:

$.ajax({
   type: "POST",
   url: '/Controller/Method',
   data:
      {
          recipients: $("input[name=elements]").val()
      },
      traditional: true,
      success: updateSelected
});

И, наконец, я просто Split элементы, как это:

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Method(string elements)
{
    IList<long> selected = elements.Split<long>(',');
    ...
}
1 голос
/ 02 февраля 2012

Самый простой способ - отправить список строк с разделителями (запятыми, возможно) в качестве аргумента запроса GET, а затем использовать Sting.Split() для их анализа на приемнике C # MVC.

Так, например $.get("/path-to/receiver/", { myArray: myArray.toString() } );

Затем на сервере используйте

string[] stringArray = Request.QueryString["myArray"].ToString().Split(',')

для извлечения значений в строковый массив, затем Int32.TryParse для окончательного получения массива целых чисел.

Синтаксис jQuery GET
Синтаксис JS Array toString ()

0 голосов
/ 19 июля 2017

Попробуйте это решение:

var Array = [10, 20, 30];

$.ajax({
    type: "Post",
    datatype: "Json",
    url: <Url of the action>,
    data: JSON.stringify(Array),
    contentType: 'application/json; charset=utf-8',

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