繁体   English   中英

与AJAX一起传递时,在IActionResult中获取空值

[英]Getting a null value in IActionResult when passed with AJAX

我正在尝试向我的ASP.NET应用程序中的iActionResult方法发出AJAX请求。 该请求正在到达该方法,但在我的方法中传递给它时,其值为null。 在控制台中检查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);
}

代替

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

尝试

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

这是因为您没有发送JSON内容,而只是发送一个int值。

您也实际上不需要指定数据类型,因为您只发送一个int值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM