我是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)
答案 0 :(得分:0)
为此,您需要使用data: send
提交Ajax。为了发生模型数据绑定,您可以尝试在Ajax中添加另一个参数traditional: true
,如中所示
Send array via Ajax and bind to List<string> on MVC 4