Bootstrap 模态无法与我的 ajax 代码一起正常工作

Bootstrap modal does not work correctly with my ajax code

我创建了一个名为 ModalReq 的局部视图,需要用数据库中的数据填充它。

控制器和视图工作正常。

但是当你点击带有 class '.car-box' 的元素时,一开始没有任何反应,在第二次按下后,正确填充的模态出现,但它不想关闭无论如何,如何使模态正常工作?

Ajax 主视图中的代码:

<script>
    function ajaxReq(url,type,selector) {
    $.ajax({
        url: url,
        type: type,
        contentType: 'application/json',

        success: function (data) {
            $(selector).html(data);
        }
    });
    }
</script>

<script>
$(document).on('click', '.car-box', function () {
    var objText = $(this).children('.box-his').children("span").text();
    var objId = objText.substring(1, objText.length);

    ajaxReq("@Url.Action("ModalReq")" + "?productId=" + objId, "POST", '#result');
    $('#myModal').modal('show')
});
</script>

然后我在这个视图的最底部用它创建了一个 div(但仍在 Ajax 代码之上)

<div id="result"></div>

当您单击带有 class '.car-box' 的元素时,Ajax 代码会创建一个对象,该对象在卡片中接收其编号和字符串类型。然后它只留下一个具有相同类型字符串的数字。然后我调用 ajaxReq,我在其中传输接受我们指定的 Id 的部分视图。然后包括创建的模式 ...

我从来没有用过ajax,所以我需要你的帮助=)

在当前迭代中 $('#myModal').modal('show') 未等待 Ajax 响应。

将它移到您的成功函数中怎么样?

success: function (data) {
        $(selector).html(data);
        $('#myModal').modal('show')
    }

然后弹窗一按就会获取到数据。

或者:这个答案 应该会为您提供将其设置为 Promise 的指导。