关于AJAX Sucess的关闭模式(ASP.NET MVC)

时间:2017-04-03 06:17:50

标签: javascript jquery asp.net ajax asp.net-mvc

我有一个Modal用于在数据库中创建新记录。

在部分视图中查看它

  

以下是观点代码

<script src="~/Scripts/jquery-3.1.1.js"></script>
                                                                                               

对于AJAX我使用此代码

<script>
   $(document).ready(function () {
       $('#save_quest').click(function () {
        savequestion();
    });
});
    function savequestion() {
        $.ajax({
            type: 'Post',
            dataType: 'Json',
            data: {
                Question_new: $('#question').val(),
                Answer: $('#answer').val(),
                Preparing: $('#prepare').val(),
                Retries: $('#retries').val(),
                  },
            url: '@Url.Action("CreateNewQuestion", "Questions")',
            success: function (da) {
                if (da.Result === "Success") {
                    $('#myModal').modal('hide')
                    //window.location.href = da.RedirectUrl;

                } else {

                    alert('Error' + da.Message);
                }
            },
            error: function (da) {
                alert('Error');
            }
        });
    }

我需要在AJAX调用成功时隐藏模态

我试试这个$('#myModal').modal('hide')

这是我在主视图上的模态

<div class="modal fade" id="myModal" role="dialog" data-backdrop="false">
<div class="modal-dialog">

    <!-- Modal content-->
    <div class="modal-content">
        <div class="modal-header">
            <button type="button" class="close" data-dismiss="modal">&times;</button>
            <h4 class="modal-title">Modal Header</h4>
        </div>
        <div class="modal-body">
            @Html.Partial("~/Views/Questions/CreateQuestion.cshtml")
        </div>
        <div class="modal-footer">
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
    </div>

</div>

如何在AJAX Success上隐藏它?

3 个答案:

答案 0 :(得分:1)

您可以在ajax成功块中尝试以下任何选项。希望它能解决你的问题。

        $("#myModal").modal('hide');
    OR
        $('#myModal').modal('toggle');
    OR
        $('#myModal').removeClass('show');
    OR
        $('#myModal').modal().hide();
    OR
        $("#myModal .close").click();
    OR
        $("#myModal .close").trigger("click");

答案 1 :(得分:0)

我找到了解决方案

只需要写

$predmeti = json_decode($_POST['predmeti'], true); if(is_array($predmeti)) { foreach($predmeti as $predmet) { $podaci = array( 'id_pohadja' => $_POST['pohadja'], 'id_predmet' => $predmet, 'prvo_polugodiste' => $_POST[$predmet . '-prvo_polugodiste'], 'prvo_zakljucna' => $_POST[$predmet . '-prvo_zakljucna'], 'drugo_polugodiste' => $_POST[$predmet . '-drugo_polugodiste'], 'drugo_zakljucna' => $_POST[$predmet . '-drugo_zakljucna'] ); try { $database->snimiOcene($podaci); } catch(Exception $ex) { die($ex->getMessage()); } } }

答案 2 :(得分:0)

  
    

这不是正确的方法。         $(&#39;#myModal&#39)。隐藏();

         

正确的方法      $(&#34;#myModal&#34)的模态。(&#39;隐藏&#39);

  

您是否尝试在页面中添加bootstrap.js?如果没有,请将其包含在您的页面中,然后进行测试。它应该工作。