ajaxを使用して、チェックボックスのIDをコントローラーに渡そうとしています。ここにjqueryがあります:
function compareEvents() {
var selected = new Array();
$('input:checked').each(function () {
selected.push($(this).attr('id'));
alert("Event " + $(this).attr('id') + " will be compared");
});
$.ajax({
url: "/Event/CompareEvents",
contentType: "application/x-www-form-urlencoded",
type: "POST",
datatype: "json",
data: JSON.stringify({eventIds:selected}),
error: function (xmlHttpRequest, errorText, thrownError) {
alert(xmlHttpRequest, errorText, thrownError);
},
success: function (data) {
alert("success");
document.location = data;
}
});
アラートは、チェックされたチェックボックスの ID を正常に返します。完了時に成功メッセージを返します。
コントローラーメソッドは次のとおりです。
[HttpPost]
public ActionResult CompareEvents(List<int> eventIds)
{
return null;
}
これは、デバッグ時を除いて正常に呼び出され、eventIds
返されnull
ます。なぜeventIds
正しい値が得られないのか誰にもわかりますか?