フィルタ リストを作成しています。ユーザーが複数のオプションを選択できる複数選択リストがいくつかあります。問題は、ajax を使用して値を返し、Web サイトに表示される Json データを返すコントローラー メソッドを呼び出すことです。しかし、問題はそれが機能しないことです。
コントローラーの方法:
[HttpPost]
public ActionResult FilterData(string a, string b, string c, string d){
//Do Something with the strings e.g. filter the data.
return Json(result, JsonRequestBehavior.AllowGet);
}
フィルタリングされたデータを取得するための Ajax メソッド:
$(document).ready(function() {
$("#submitBTN").click(function() {
var ab = $('#selectedID1').val();
var bc = $('#selectedID2').val();
var cd = $('#selectedID3').val();
var de = $('#selectedID4').val();
$.ajax({
contentType: "application/json; charset=utf-8",
url:"/Controller/FilterData",
type: "POST",
data: JSON.stringify({a: ab, b: bc, c: cd, d:de }),
success: function(result){
}
error: function(){}
});
return false;
});
});
firebug を使用すると、正しい値が投稿されていることがわかります。そして、URLリンクから手動で文字列を選択すると、正しいフィルタリングされたデータが得られることを知っています。ただし、このデータは、postes 値を使用してフィルター処理されずに、メソッドに取得されず、すべてのデータが出力されるようには見えません。
問題は、投稿されたデータが取り込まれていないか、FilterData メソッドに送信されていないため、フィルタ オプションが選択されていない場合と同様に、すべてのデータが返されることです。コードを修正する方法を知りたいので、ajax によって投稿されたデータを取得して、そのデータをメソッド FilterData パラメータ (文字列 a、文字列 b、文字列 c、文字列 d) に送信できます。