フォームを表示するajax JavaScript関数を介して呼び出されたコントローラーにactionResultメソッドがあります。この部分的なビューは、class="webPage_content_block" の div の他の部分と共に Web ページに表示されます。フィールドのいずれかが正しくない場合、部分的なビューがモデルとともに渡される場合に備えて、フォームフィールドのサーバー検証を行う必要がありますが、私の問題は ajax 関数にあります。すべてがフォームで問題ない場合、コントローラーはjsonメッセージを返し、Json(new { Response = "Success" })を渡し、成功した場合はajax doneメソッドで、別のページにリダイレクトします。つまり、elseアラートメッセージを表示します
[HttpGet]
public ActionResult CreateNewFunctionNavigation()
{
return PartialView("CreateNewNavigation_Partial");
}
[HttpPost]
public ActionResult CreateNewFunctionNavigation(CreateFunctionNavigation_SP_Map obj )
{
if(ModelState.IsValid)
{
try
{
_FN_Services_a2.CreateFunctionNavigation(obj);
return Json(new { Response = "Success" });
}
catch (DataException ex)
{
ModelState.AddModelError("", "Unable To Create New Function Navigation" + ex);
}
}
return PartialView("CreateNewNavigation_Partial", obj);
} //end
アヤックス
$('#NewFunctionNavigationForm').submit(function (e) {
e.preventDefault();
$.ajax({
url: this.action,
type: this.method,
data: $(this).serialize(),
}).done(function (result) {
$('.webPage_content_block').html(result);
});
});
かみそりの形
@using (Html.BeginForm("CreateNewFunctionNavigation", "SystemCore", FormMethod.Post, new { id = "NewFunctionNavigationForm" }))
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
//form fields here....
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default _formButton" />
<input type="button" value="Cancel" class="btn btn-default _formButton" onclick="CancelPage();" />
</div>
</div>
}