好的,我已经看到有关此问题的大量问题,但实际上没有一个答案对我有用,这是我的AJAX:
$.ajax({ url: "/FilterSessions/GetFilterSession", type: "GET", dataType: "json", data: jsonFilters, traditional: true, success: function (response) { //Haha, it's never entering here. not really. } });
var“ jsonFilters”包含一个包含以下数据的数组:
[0] = { Path: "Test", Name: "More testing", Value: "Test Value" }, [1] = { Path: "Test", Name: "More testing", Value: "Test Value" }
这是我的控制器:
public ActionResult GetFilterSession(List<FilterSessionModel> jsonFilters) { //Do things return Json(false, JsonRequestBehavior.AllowGet); }
jsonFilters始终为null …我也尝试过添加contentType: "application/json; charset=utf-8"到AJAX调用中…但是那实际上并没有做任何事情
contentType: "application/json; charset=utf-8"
最后,该类FilterSessionModel的结构如下:
FilterSessionModel
public class FilterSessionModel { public string Path { get; set; } public string Name { get; set; } public string Value { get; set; } }
关于我可能会丢失或正在发生的事情有什么想法吗?
到目前为止我尝试过的事情:
使用JSON.stringify设置“ traditional:true”,设置“ contentType”,并尝试在MVC Controller中接受字符串(不执行)
更新:由于下面的答案,我意识到缺少的是使用参数Id发送数据,如下所示:
data: "{param1ID:"+ param1Val+"}"
我认为您正在寻找的答案在这里得到回答:
使用jQuery Ajax将对象列表传递到MVC控制器方法中