当用户单击DELETE按钮时,我想显示一个确认对话框菜单。

但是按钮不会触发我的脚本。触发JavaScript后,如果用户选择“确定”,则脚本必须转到该动作。否则,如果用户单击“取消”,则什么也不会发生。

这是JavaScript代码;

<script type="text/javascript">
    $(document).ready(function () {
        $(".confirmDialog").on("click", function (e) {
            // e.preventDefault(); use this or return false
            var url = $(this).attr('href');
            $("#dialog-confirm").dialog({
                autoOpen: false,
                resizable: false,
                height: 170,
                width: 350,
                show: { effect: 'drop', direction: "up" },
                modal: true,
                draggable: true,
                buttons: {
                    "OK": function () {
                        $(this).dialog("close");
                        window.location = url;
                    }, "Cancel": function () {
                        $(this).dialog("close");
                    }
                }
            });
            $("#dialog-confirm").dialog('open');
            return false;
        });
    });
</script>


这是MVC代码;

<div style="text-align: right; font-weight: bold; font-size: larger; color: red;">
    <tr>
        <td>@Html.ActionLink("Delete", "Your-Action", new { @class = "confirmDialog" })</td>
    </tr>
</div>
<div id="dialog-confirm" style="display: none">
    <p>
        <span class="ui-icon ui-icon-alert" style="float: left; margin: 0 7px 20px 0;"></span>
        Are you sure ?
    </p>
</div>

最佳答案

您正在使用的Actionlink重载期望第3个参数作为对象路由而不是html属性。

正确显示操作链接,如下所示:

@Html.ActionLink("Delete", "Your-Action", new{} ,new { @class = "confirmDialog" })


要么

@Html.ActionLink("Delete", "Your-Action", null ,new { @class = "confirmDialog" })


您的其余代码都很好.. !!

10-06 04:14