多次提交相同的局部视图

问题描述

我正在Details视图中调用局部视图Save,类似这样

<div class="row">
            <div class="col-lg-9">
                @Html.DropDownListFor(model => model.TECHNOLOGY_OBJECTID,ViewBag.Technology as SelectList,"Избери технологија",new { @name = "Technology",@id = "TechnologyID",@class = "browser-default custom-select",required = "required" })
            </div>
        </div>
        <div class="row">
            <div class="form-group">
                <div class="col-lg-9">
                    @Html.DropDownListFor(model => model.UPLOAD_SPEED_CLASS_OBJECTID,ViewBag.UploadSpeed as SelectList,"Избери брзина",new { @name = "UploadSpeed",@id = "UploadSpeedID",required = "required" })
                </div>
            </div>
            <div class="form-group">
                <div class="col-lg-9">
                    @Html.DropDownListFor(model => model.DOWNLOAD_SPEED_CLASS_OBJECTID,ViewBag.DownloadSpeed as SelectList,new { @name = "DownloadSpeed",@id = "DownloadSpeedID",required = "required" })
                </div>
            </div>
        </div>
        <div class="form-group">
            <input type="submit" value="Create" class="btn btn-primary" id="saveContract" />
        </div>
    </div>
</div>
<div id="details">
    <div id="accordion">
        <div class="card">
            <div class="card-header" id="headingOne">
                <h5 class="mb-0">
                    <button class="btn btn-link" data-toggle="collapse" data-target="#detailOne" aria-expanded="true" aria-controls="detailOne">
                        Под-договор
                    </button>
                </h5>
            </div>

            <div id="detailOne" class="collapse show" aria-labelledby="headingOne" data-parent="#accordion">
                <div class="card-body">
                    <div>
                        @Html.Partial("Details")
                    </div>
                </div>
            </div>
        </div>
        <div class="card">
            <div class="card-header" id="headingTwo">
                <h5 class="mb-0">
                    <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#detailsTwo" aria-expanded="false" aria-controls="detailsTwo">
                        Под-договор
                    </button>
                </h5>
            </div>
            <div id="detailsTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordion">
                <div class="card-body">
                    <div>
                        @Html.Partial("Details")
                    </div>
                </div>
            </div>
        </div>
        <div class="card">
            <div class="card-header" id="headingThree">
                <h5 class="mb-0">
                    <button class="btn btn-link collapsed" data-toggle="collapse" data-target="#detailsThree" aria-expanded="false" aria-controls="detailsThree">
                        Под-договор
                    </button>
                </h5>
            </div>
            <div id="detailsThree" class="collapse" aria-labelledby="headingThree" data-parent="#accordion">
                <div class="card-body">
                    <div>
                        @Html.Partial("Details")
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

我正在使用bootstrap accordion项目来渲染局部视图3次。 这是我的局部视图,并且有一个保存按钮。

@model M20_AEK.Models.ContractSettlement
@addTagHelper *,Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper *,Kendo.Mvc
@using Kendo.Mvc.UI

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>

<div>
    <div asp-validation-summary="ModelOnly" class="text-danger"></div>
    <div class="form-group">
        <div class="form-group">
            @Html.TextBoxFor(model => model.OBJECTID2,new { id = "objectId2",@class = "form-control",style = "display: none;" })
        </div>
    </div>
    <div class="form-group">
        <div class="form-group">
            @Html.TextBoxFor(model => model.Contract_Settlement_OBJECTID,new { id = "Contract_Settlement_OBJECTID",style = "display: none;" })
        </div>
    </div>
    <div class="form-group">
        @Html.DropDownListFor(model => model.Customer_Type_OBJECTID,ViewBag.CustomerType as SelectList,"Избери тип",new { @name = "CustomerType",@id = "CustomerTypeID",required = "required" })

    </div>
    <div class="form-group">
        <div class="form-group">
            @Html.TextBoxFor(model => model.New_Contract,new { id = "New_Contract",@class = "form-control" })
        </div>
    </div>
    <div class="form-group">
        <div class="form-group">
            @Html.TextBoxFor(model => model.Cancelled_Contract,new { id = "Cancelled_Contract",@class = "form-control" })
        </div>
    </div>
    <div class="form-group">
        <input type="submit" value="Create" class="btn btn-primary" id="saveContractDetailID" />
    </div>
</div>

我像这样抓住保存按钮的click event

$(function () {
        $("#saveContractDetailID").click(function () {
            $.ajax({
                method: "POST",url: '@Url.Action("SaveContractDetail","ContractDetails")',data: {
                    customerTypeid: $("#CustomerTypeID option:selected").val(),newContractid: $("#New_Contract").val(),cancelledContractid: $("#Cancelled_Contract").val(),}
            }).done(function (res) {
                if (res.status === "success") {
                    alert(res.message[0]);
                }
            });
        });
    });

我在控制器中调用一个方法,在其中使用存储过程将一些数据保存在数据库中。我第一次保存时,它进入控制器,保存数据,一切正常。如果我尝试打开第二个手风琴并单击“保存”按钮,则它不起作用。它不会捕获按钮的click事件,也不会进入控制器。如上所示,手风琴中的divs具有不同的ids。我在这里做错了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)