Модальный не закрывается после успешного вызова Ajax и возвращает Ok () как ActionResult - PullRequest
0 голосов
/ 14 сентября 2018

Я создал модальный файл загрузки, который инициируется со страницы «Редактировать» определенного класса (например, «/ 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);
            }
        })            
    });
}

1 Ответ

0 голосов
/ 14 сентября 2018

Как предполагает gaetanoM, я изменил #myModal на fileformModal. Это все. По своей наивности у меня сложилось впечатление, что myModal - это своего рода защищенное имя.

...