ASP.NET Core Ajax表单发布preventDefault未被点击

时间:2019-09-23 15:49:56

标签: jquery ajax asp.net-core

我有一个简单的网站(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”被命中了。

0 个答案:

没有答案