Передача массива JSON в вызове AJAX, отправка нуля в MVC - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь передать массив объектов json в действие моего контроллера, и он продолжает появляться как ноль.

Код JavaScript

function UpdateSelected() {
    var items = {};

    //Loop through grid / sub grids and create json array
    $('.k-detail-row .k-grid').each(function () {
        var grid = $(this).data("kendoGrid");
        var selectedElements = grid.select();
        for (var j = 0; j < selectedElements.length; j++) {
            var item = grid.dataItem(selectedElements[j]);
            var json = item.toJSON();
            items = [].concat(items, json);
        }
    })

    //shift the first empty space out
    items.shift();

    //items is ready to send
    alert(JSON.stringify(items));
    $.ajax({
        cache: false,
        url: '/Update/GetSchematicsForSelectedVariants',
        type: 'GET',
        data: JSON.stringify(items),
        success: function (data) {
            alert("success");
        }
    });
}

Массив Json выглядит следующим образом:

enter image description here

Действие контроллера

public JsonResult GetSchematicsForSelectedVariants(List<VariantViewModel> vm)//vm coming in null
{
    return Json(_dataAccessService.GetSchematicsForMacroVariants(vm),JsonRequestBehavior.AllowGet);
}

VariantViewModel

public class VariantViewModel
{
    public string Id { get; set; }
    public string Variant { get; set; }
}

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

Может кто-нибудь указать мне правильное направление?

1 Ответ

0 голосов
/ 10 октября 2019

Я нашел проблему. Мои данные нужно было передать следующим образом в моем запросе AJAX. Не могу поверить, что я честно пропустил это.

$.ajax({
        cache: false,
        url: '/Update/GetSchematicsForSelectedVariants',
        type: 'POST',
        data: {'ListOfVariants' : items},
        success: function (data) {
            alert("success");
        }
    });

Спасибо всем за ваши комментарии, которые помогли мне указать верное направление.

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