Ajaxポストに関して、誰かが正しい方向に向けることを願っています。私は選択された以前の値に応じてトグルされる多くの質問を持つ長い形式を持っています。 Ajaxを使用してフォームを送信すると、フォームが正常に送信され、_Success
パーシャルが正しく表示されます。しかし、私がフォームにエラーを作り、それを提出すれば。ポストバックすると、すべてのJQueryはMVC @Html.ValidationMessageFor
の表示を正しく動作させなくなりますが、トグルされたフィールドは緑色の確認とともにリセットされます。ポストバックフォームの状態でAjaxを使用したMVCポストフォームとJQueryのリセット
以前の状態を維持するにはどうすればよいですか?あるいは、私はこれを間違ってやって、これを行う良い方法がありますか?
ありがとうございます!
私のコード例:
ビュー
<div id="test-container">
@Html.Partial("_PartialView",Model)
</div>
パーシャルビュー
<form method="post" action="@Url.Action("SendReport","Report")" data-form-ajax="true" data-form-target="#test-container">
// form fields here
コントローラ
if (Request.IsAjaxRequest())
{
if (!ModelState.IsValid)
{
// set model
return PartialView("_PartialView",model);
}
// more model methods
if (model.RecordMessage.Type == MessageType.Success)
{
return PartialView("_Success", model);
}
else
{
return PartialView("_PartialView", model);
}
}
アヤックス
var ajaxSubmitForm = function() {
var $form = $(this);
var options = {
url: $form.attr("action"),
type: $form.attr("method"),
data: $form.serialize()
};
$.ajax(options).done(function (data) {
$("#test-container").html("");
$("#test-container").append(data);
});
return false;
};
$("form[data-form-ajax='true']").submit(ajaxSubmitForm);
あなたのソリューションに感謝Cristian。私はちょうどこのポストに気づきました、そして、これは実際に私がやったことも事実です! – Alan