我正在尝试传递一个javascript数组,其中值来自多选框。但是当我遇到动作时,我从ajax get请求返回null。我试图设置一个断点,它返回null。这是我的行动签名
public JsonResult GetMessages(List<string> id, string searchText)
这是我的ajax电话:
$.get("Dashboard/GetMessages", $.param({ "id": JSON.stringify(selectedID), "searchText": InputSearch }, true)
, function (result) {
for (var item = 0; item < result.length; item++) {
var newMessageEntry = "<tr><td>" + result[item] + "</td></tr>"
}
})
答案 0 :(得分:1)
要在ajax POST
中传递数组数据,请使用以下代码。
控制器操作 -
[HttpPost]
public JsonResult GetMessages(List<string> id, string searchText)
{
return Json(true);
}
你的JQuery代码应该是 -
$.ajax({
url:"/Home/GetMessages",
type:"POST",
data:JSON.stringify({ id: selectedID, searchText: InputSearch }),
contentType:"application/json; charset=utf-8",
success: function(result){
console.log(result);
}
});
运行应用程序时,您应该获得如下所示的数据 -
要发出GET
请求,请使用以下代码。
控制器操作 -
public JsonResult GetMessages(List<string> id, string searchText)
{
return Json(true);
}
JQuery代码应该是 -
$.ajax({
url:"/Home/GetMessages",
type:"GET",
data:{ id: selectedID, searchText: InputSearch },
contentType: "application/json; charset=utf-8",
// Make sure we have to set Traditional set to true
traditional: true,
success: function(result){
console.log(result);
}
});
输出将是 -