成功调用Ajax后,Modal不会关闭,并将Ok()作为ActionResult返回

问题描述 投票:0回答:1

我创建了一个文件上载模式,它是从特定类的“编辑”页面启动的(例如“/ Case / Edit / 2”)。成功上传文件后(使用dropzone.js),我希望模式在成功时关闭success: function(){$("#myModal").modal.('hide')};但是,当我成功上传文件时,模态仍保持打开状态。我的控制器以return Ok();结尾怎么办?

CSHTML的相关部分如下:

<button class="btn btn-primary" onclick="AddEditFiles(0)">Add File</button>
</div>

<div class="modal fade" id="fileFormModel" role="dialog">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <a href="#" class="close" data-dismiss="modal">&times;</a>
                <h3 id="title" class="modal-title">Add Filedata</h3>
            </div>
        <div class="modal-body" id="fileFormModelDiv">
        </div>
      </div>
    </div>
</div>


<div class="row">
    <div class="col-md-4">
        <form asp-action="Edit">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <input type="hidden" asp-for="Id" />
            <div class="form-group">
                <label asp-for="Casename" class="control-label"></label>
                <input asp-for="Casename" class="form-control" />
                <span asp-validation-for="Casename" class="text-danger"></span>
            </div>
            <div class="form-group">
                <input type="submit" value="Save" class="btn btn-default" />
            </div>
        </form>
    </div>
</div>
<script>

var AddEditFiles = function (itemId) {
    var url = "/Upload/AddEditFiles?itemId=" + itemId;
    if (itemId > 0)
        $('#title').html("Edit Filedata");

    $("#fileFormModelDiv").load(url, function () {
        $("#fileFormModel").modal("show");

    });

    $('#fileFormModel').on('shown.bs.modal', function () {

        //toevoeging voor dropzone
        $("#modalForm").dropzone({
            maxFiles: 100,
            success: function () {    // adding a "returnId" to this function from the controller -'return Ok(returnId)-'produced an error in the path
                //var url = "/Case/Edit/" + returnId; // this did not work
                $("#myModal").modal('hide'); // <-- HERE IS MY PROBLEM
                    //window.location.href = url;
            },
            error: function (errormessage) {
                alert(errormessage.responseText);
            }
        })            
    });
}
jquery bootstrap-modal asp.net-ajax asp.net-core-2.0
1个回答
0
投票

正如gaetanoM所建议的那样,我将#myModal改为fileformModal。这就是全部了。在我的天真中,我的印象是myModal是一个受保护的名字。

© www.soinside.com 2019 - 2024. All rights reserved.