我有一个简单的网站(ASP.NET Core 2.2 MVC),该网站带有_Layout,可在其主要标签中呈现正文:
<main class="content">
<div class="container-fluid p-0">
<main role="main" class="pb-3">
@RenderBody()
</main>
</div>
</main>
在其中一个DIV元素的主体(Index.cshtml)中,我填充了带有partialview的列表:
<div class="section-list">
@{await Html.RenderPartialAsync("_PartialList1", Model);}
</div>
将一些数据作为表格列出。每行都有一个编辑选项,可打开模式窗体(通过partialview)。单击编辑行命令后,将显示一个弹出窗口(模式),该窗口包括以下形式:
<form asp-controller="Home" asp-action="EditSpremljanje" method="post" data-ajax="true" data-ajax-method="post">
<div class="row">
<div class="col-md-12">
<div class="form-group">
<label>Id: </label>
<input class="form-control" asp-for="Id" readonly />
</div>
</div>
</div>
// a bunch of other labels & inputs ...
<div class="row" style="text-align: right">
<div class="form-group col-md-12">
<p class="text-left">Ali želite shraniti spremembe?</p>
<label id="lbErrorMessage" style="color:red"></label>
<button type="button" class="btn btn-outline-warning" data-dismiss="modal">Prekliči</button>
<button type="submit" class="btn btn-primary ml-2">Shrani</button>
</div>
</div>
</form>
问题是,当我提交表单(在键盘上按ENTER或单击提交按钮)时,下面的jQuery代码(在Index.cshtml中)没有被点击。
$(document).ready(function () {
$('.content').on('submit', 'form', function (e) {
e.preventDefault();
$.ajax({
type: 'post',
url: '/Home/EditSpremljanje',
data: $('form').serialize(),
success: function () {
//alert('form was submitted');
}
}).done(function (result) {
if (result.status === "success") {
$('#modalGeneric').modal('hide');
//reload data - partial list
$('.section-list').load(url, {
searchString: '', pageNumber: 1, idSelect: 0
});
} else {
$('#lbErrorMessage').html(result.message);
}
});
});
});
虽然表单被发布,因为我的控制器中的“ IActionResult EditSpremljanje”被命中了。