データをモデルとして html フォームから Controller メソッドに送信しようとしています。ただし、jQuery ajax の投稿がそのような情報をコントローラーに送信する方法がわかりません。フォームを送信したときに実際に発生するエラーは次のとおりです。
リソースが見つかりませんでした... 要求された URL: /OnCallSchedule
アドレスが正しいことはわかっているので、渡されるデータがコントローラー メソッドに渡されるモデルと一致しないと思われます。
[HttpPost]
public JsonResult getSchedule(DateModel dateMod)
{
...
return Json(data);
}
ajax コードは次のとおりです。
$(function () {
$('form').submit(function () {
alert('@Url.Action("getSchedule")');
var date = $('form').serialize();
var jqxhr = $.post('@Url.Action("getSchedule")', date, function (data) {
alert("success!");
})
.success(function() { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });
jqxhr.complete(function() { alert("second complete"); });
});
});
メソッドへのパスをリストする最初のアラート ステートメントは、正常にトリガーされます。その後、エラー メッセージが表示され、他のアラートは表示されません。
ほぼすべての戦術を使用してこれを試したことに注意してください。したがって、serialize() コマンドを使用してデータを正しく送信していないと思われます。私は何を間違っていますか?
また、jqxhr アクションを正しく実行していない可能性もあります。わかりやすい例を見つけることができた唯一の場所は、jQuery のドキュメントです。私はもともと次のようなものを使用していました:
$.ajax({
url: '/OnCallSchedule/getSchedule',
type: 'POST',
dataType: 'json',
data: $('form').serialize(),
contentType: 'application/json; charset=utf-8',
success: function(data) {
$("#dataTable").html(data);
}
});