さて、この質問に関してたくさんの質問が投稿されているのを見てきましたが、実際にうまくいった回答はありません。私の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 呼び出しにも追加しようとしましたが、実際には何もしませんでした
最終的に、クラスFilterSessionModel
は次のように構成されます。
public class FilterSessionModel
{
public string Path { get; set; }
public string Name { get; set; }
public string Value { get; set; }
}
何が欠けているのか、何が起こっているのかについてのアイデアはありますか?
私がこれまでに試したこと:
"traditional: true" を設定し、"contentType" を設定し、JSON.stringify を使用して、MVC コントローラーで文字列を受け入れようとしています (no-go)
更新: 以下の回答のおかげで、不足していたのは、次のようにパラメーター Id を使用してデータを送信することであることに気付きました。
data: "{param1ID:"+ param1Val+"}"