Отправить массив чисел из JS в asp.net MVC action - PullRequest
1 голос
/ 25 июня 2019

Я хочу отправить массив чисел в свое обратное действие, и я получаю NULL или ошибку, что бы я ни пытался. Это мой текущий код.

JS

$.ajax({
        traditional: true,
        dataType: "json",
        contentType: 'application/json; charset=utf-8',
        type: "POST",
        data: JSON.stringify(groupIds),
        url: '/Admin/ReadMessages',
        error: function (error) {
            swal.fire({
                title: "Something went wrong. Please try again later.",
                type: "error"
            });
        }
    });

MVC

public ActionResult ReadMessages(List<long> groupIds)
{
     return new HttpStatusCodeResult(HttpStatusCode.OK);
}

Есть идеи?

Ответы [ 4 ]

2 голосов
/ 25 июня 2019

попробуйте

var arr= new Array();
arr.push(1);
arr.push(2); 

$.ajax({  
    type: "POST",
    url: urlToPost,
    data: JSON.stringify(arr),
    contentType: "application/json"
   });
1 голос
/ 25 июня 2019

Просто чтобы прояснить для других, как сказал @Amin, и я понял, что ошибка была в отправке объекта массива NON, я использовал функцию map, и он возвратил некоторый массив jquery, но когда я создал экземпляр new Array и отправил его, онработал отлично.

0 голосов
/ 25 июня 2019
$.ajax({
    traditional: true,
    dataType: "json",
    contentType: 'application/json; charset=utf-8',
    type: "POST",
    data:{groupIds:groupIds},
    url:'@Url.Action("ReadMessages", "Admin")',
    error: function (error) {
        swal.fire({
            title: "Something went wrong. Please try again later.",
            type: "error"
        });
    }
});

контроллер:

[HttpPost]
public ActionResult ReadMessages(IEnumerable<long> groupIds))
{
     return new HttpStatusCodeResult(HttpStatusCode.OK);
}
0 голосов
/ 25 июня 2019
$.ajax({
    traditional: true,
    dataType: "json",
    contentType: 'application/json; charset=utf-8',
    type: "POST",
    data: { 'groupIds': groupIds} ,
    url: '/Admin/ReadMessages',
    error: function (error) {
        swal.fire({
            title: "Something went wrong. Please try again later.",
            type: "error"
        });
    }
});

А в контроллере:

public ActionResult ReadMessages(IEnumerable<long> groupIds))
{
     return new HttpStatusCodeResult(HttpStatusCode.OK);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...