私はここで少し縛られています.ajaxを使用してフォームを送信しようとしています.すべてうまくいき、サーバーがそれを実行した後、アクションを新しいページにロードすることを決定します.私がしたくないこと。
これが私のコントローラーです
[HttpPost]
public ActionResult Submit(int id, string trainingProgramId, FormCollection form, User user)
{
//Do Some action
return null;
}
別のコントローラーで、 $return PartialView(model); を実行するように設定しました。
これは私が使用している JQuery コードです。
$(function () {
$("form").submit(function (e) {
if (nextquestion()) { //check if posting can proceed
$.ajax({
type: "POST",
data: $(this).serialize(),
url: $(this).attr("action"),
success: function (response) {
alert(response);
$('#cases:last-child').insertAfter(response);
},
error: function (data) { }
});
}
e.preventDefault();
});
});
いずれの場合も、操作を実行した後、別の URL にリダイレクトされます。特に私の意図がより多くのものをページにロードすることである場合、これは意図ではありません。
私はすべて、一連のソリューションを試してきましたが、コントローラーが return ステートメントを実行すると、ページは自動的に $/Submit にリロードされます
$ @Scripts.Render(" https://ajax.aspnetcdn.com/ajax/mvc/3.0/jquery.unobtrusive-ajax.min.js ");を追加しました。私のスクリプトに
他の例から、これは同じページにとどまることで、希望どおりに機能するはずですが、どちらの方法でもページを変更する責任者を理解するのが難しいと感じています。PartialView を返すと、最初に Partial View を挿入するように設定したため、完全に新しいページがモデルと共に読み込まれます。
何が起こっているのか、なぜ私のコードが間違っているのかを説明したい人はいますか?
丸一日デバッグしようとしても見つかりません。