私のコードの一部を紹介します。私のかみそりのビューでは、HTMLForm があり、それを Ajax で使用したいと考えています。
次の送信コードを見てください。
var editQuestionFormSubmit = function () {
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
success: function (result) {
$('#target2').html(result);
//$("#editQuestionForm").submit(editQuestionFormSubmit);
}
});
return false;
};
var editQuestion = function () {
$.ajax({
url: this.href,
type: "get",
success: function (result) {
$("#target2").html = result;
$("#editQuestionForm").submit(editQuestionFormSubmit);
}
});
return false;
};
このeditQuestion
関数は、ユーザーがハイパーリンクをクリックしたときに初めて実行されます。結果にはフォームが含まれているため、送信イベントを設定しました。
ここで、ユーザーが投稿を行ったときに、それが検証されていないと想像してみましょう。同じフォームを現在のモデルでもう一度表示します。
public ActionResult EditQuestion(QuestionTemplate qt)
{
if (ModelState.IsValid)
{
....
return ...
}
return PartialView("_EditQuestion", qt);
}
したがって、最後のコードは同じフォームを返しますが、検証するエラーを表示し、再度送信イベント ハンドラーを登録する必要があります。私は良いアプローチをしていますか、それとも各コールバックに各イベントハンドラーを登録しないためのより良い方法がありますか?