【发布时间】:2017-01-03 09:16:50
【问题描述】:
在我的 MVC Core 应用程序中,我想在提交表单后加载部分视图。
_TransferForm中的表单提交后,会加载另一个局部视图,而不是刷新整个页面。下面是我的代码。
为什么_ApplySuccess 占据整个页面,而不是在Apply 中显示为页面的一部分?
我在共享的_Layout 中添加了<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js">。
父视图 Apply.cshtml:
@Html.Partial("_ApplyForm")
@section Scripts {
<script>
// delegate submit event to document, since form might be replaced
$(document).on('submit', '#applyForm', function () {
var $theForm = $(this);
// manually trigger validation
if ($theForm.valid()) {
$('#progress').show();
$.post('', $theForm.serialize())
.done(function (response) {
$theForm.replaceWith(response);
})
}
return false;
});
</script>
}
局部视图 _ApplyForm.cshtml:
<form id="applyForm" asp-action="Apply" asp-controller="Jobs">
// content
</form>
局部视图 _ApplySuccess.cshtml:
<div>Successfully applied.</div>
控制器的动作 Apply:
public async Task<IActionResult> Apply(Applicant applicant)
{
if (ModelState.IsValid)
{
// code
return PartialView("_ApplySuccess");
}
return PartialView("_ApplyForm");
}
【问题讨论】:
-
@ebramkhalil 这没有帮助。顺便说一句,我已经编辑了我的问题。
标签: ajax asp.net-mvc asp.net-ajax asp.net-core-mvc partial-views