Получение нулевого значения в IActionResult при передаче с AJAX - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь сделать AJAX-запрос к методу iActionResult в моем приложении ASP.NET. Запрос поступает в метод, но когда он передается, в моем методе значение равно нулю. Значение selectedKommun всегда является числом, когда я проверяю его в консоли.

    $(document).ready(function () {

    $('#kommun').change(function () {
        var selectedKommun = $("#kommun").val();
        var fordonSelect = $('#fordon');
        fordonSelect.empty();

        if (selectedKommun != null && selectedKommun != '') {
            $.ajax({
                type: "POST",
                url: "/avboka?handler=GetFordon",
                beforeSend: function (xhr) {
                    xhr.setRequestHeader("XSRF-TOKEN",
                        $('input:hidden[name="__RequestVerificationToken"]').val());
                },
                data: { "Id": selectedKommun },
                contentType: "application/json; charset=utf-8",
                dataType: "json"
            }).done(function (data) {
                console.log(data);
            })
            }
        });
});

Вот мой метод, когда я отправляю свой запрос. Я рекомендовал некоторый код только для проверки значения Id.

[HttpPost]
public IActionResult OnPostGetFordon(int Id)
{
    //if (!string.IsNullOrWhiteSpace(kommunFordonId) && kommunFordonId.Length == 3)
    //{

    //    IEnumerable<SelectListItem> regions = _fordonRepo.GetFordon(kommunFordonId);

    //    var json = JsonConvert.SerializeObject(regions);
    //    return this.Content(json);
    //}
    //return null;
    return new JsonResult(Id);
}

1 Ответ

0 голосов
/ 04 января 2019

вместо

contentType: "application/json; charset=utf-8",

попробуй

contentType: "application/x-www-form-urlencoded; charset=UTF-8",

Это потому, что вы не отправляете контент JSON, только int.

Вам также не нужно указывать тип данных, поскольку вы отправляете только int.

...