如何在mvc 4中创建弹出窗口?

时间:2013-04-28 13:10:03

标签: javascript asp.net-mvc asp.net-mvc-4 razor

所以,我想在删除表格中的一行时显示弹出窗口,所以这是我的操作链接:

  <script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" type="text/javascript"></script>
  <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
  <script src="@Url.Content("~/Scripts/jquery-ui-1.8.20.min.js")" type="text/javascript"></script>

@Html.ActionLink("Delete", "Delete", new { id=item.cin  },new { @class = "delete-logo"  ,@pkNo=item.cin})
 <div id="confirmDialog" title="Warning"></div>

我的剧本:

<script type="text/javascript">

$(document).ready(function () {
    buttonizeALL();
    setLinks();
});

function buttonizeALL() 
{        
    $(".delete-logo").button();
}

function setLinks() 
{
    //delete person
    $(document).ready(function () {
        $(".delete-logo").live("click", function (e) {
            e.preventDefault();

            var pkNo = $(this).attr("pkNo");


            $("#confirmDialog").dialog({
                resizable: false,
                height: 200,
                width: 300,
                modal: true,
                buttons: {
                    "Yes": function () {
                        $(this).dialog("close");
                        var rowNo = '#row-' + pkNo;
                        var url = '/Subscribers/Delete/' + pkNo;
                        $.ajax({
                            type: "Delete",
                            url: url,
                            data: {},
                            cache: false,
                            dataType: "json",
                            success: function () {

                                $(rowNo).animate({ opacity: 0.0 }, 400, function () {
                                    $(rowNo).remove();
                                });

                            },

                            error: function (jqXHR, exception) {
                                alert('Uncaught Error.\n' + jqXHR.responseText);
                            }

                        }); //end ajax call

                    }, // end of yes button
                    "No": function () {
                        $(this).dialog("close");
                    }
                } //end buttons
            }); //end modal 
        });      //end delete

    });
} //end setLinks

我的问题是弹出窗口不起作用,当我使用我的脚本而没有弹出它有效,所以如果有人有任何想法,我将非常感激。

2 个答案:

答案 0 :(得分:1)

首先,请不要再使用“live”命令。这个被弃用而不是“on”命令。此外,无需在setLinks函数中使用$(document).ready。由于它是一个独立的函数(不是自动执行),它只会在你在doc.ready函数中调用它时被调用到内存中。

答案 1 :(得分:1)

Here是您在jsFiddle中稍微整理的示例,即我已将setLinks()代码移动到document.ready()函数中。

$(document).ready(function () {
    buttonizeALL();
    setLinks(); // removed this
});

此外,我已将ActionLink替换为将呈现的锚标记。 这是使用Jquery 1.8.3和jQuery UI 1.9.2。弹出接缝可以正常工作。