Ajax将Null发送到.net核心MVC控制器并且不确定原因

时间:2018-02-13 13:58:00

标签: javascript jquery ajax asp.net-core-mvc

我是Ajax的新手,对我而言,这是我无法理解的事情(说实话,jQuery一般都是这样)。

我正在尝试传递一个包含两个字符串数组的对象,一个搜索参数,另一个搜索值。

问题是,当我按下提交按钮时,Ajax调用会命中MVC控制器,但Controller中的Model会在两个数组中返回Null。

Ajax电话:

    function onActivation() {
    var send = { queryParameters: queryParameters, queryValues: queryValues };
    $.ajax({
        url: '@Url.Action("Index", "SearchResults")',
        type: "POST",
        contentType: "application/json; charset=utf-8;",
        data: JSON.stringify({ advancedSearch: send }),
        success: function (response) {
            response ? alert("It worked!") : alert("It didn't work.");
        }
    });
}

模特:

public class AdvancedSearch
    {
        public string[] queryParameters { get; set; }
        public string[] queryValues { get; set; }
    }

控制器出现问题的第一行:

public async Task<IActionResult> Index(AdvancedSearch advancedSearch)

1 个答案:

答案 0 :(得分:0)

为此,您需要使用data: send提交Ajax。为了发生模型数据绑定,您可以尝试在Ajax中添加另一个参数traditional: true,如中所示 Send array via Ajax and bind to List<string> on MVC 4