C#,MVC 确认删除对话框

Posted

技术标签:

【中文标题】C#,MVC 确认删除对话框【英文标题】:C#, MVC Confirmation Delete Dialog 【发布时间】:2017-12-20 12:30:57 【问题描述】:

在开始时,我想为我糟糕的英语技能感到抱歉。我使用带有实体框架的 MVC 创建 Web 应用程序。当用户尝试从表中删除记录时,我想创建一个自定义的确认对话框。当我使用标准确认对话框“返回确认('你确定吗?')”时,确认有效。但是我想使用自定义的确认对话框,例如 bootstrap 中的甜蜜警报或类似的东西。

Controller 中的删除方法:

        [HttpPost]
    [ValidateAntiForgeryToken]
    [Authorize]
    public ActionResult Delete(int id)
    
        DiabeticControl diabeticControl = db.DiabeticControls.Find(id);
        db.DiabeticControls.Remove(diabeticControl);
        db.SaveChanges();
        return RedirectToAction("Index");


    

视图中的表:

 @foreach (var item in Model)

        <tr>
            <td>@html.DisplayFor(modelItem => item.Result)</td>
            <td>@Html.DisplayFor(modelItem => item.Time)</td>
            <td>
                <div class="form-group">
                    @using (Html.BeginForm("Delete", "DiabeticControls",  new  id = item.Id ))
                    
                            @Html.AntiForgeryToken()
                            @Html.ActionLink("Edit", "Edit", new  id = item.Id , new  @class = "btn btn-default xs-margin" )
                            @Html.ActionLink("Details", "Details", new  id = item.Id , new  @class = "btn btn-default xs-margin" )
                            <button type="submit" class="btn btn-danger xs-margin delete" >Delete</button>

                    
                </div>
                @
                    ViewBag.Key = item.Id;
                 


            </td>

            <td>@Html.HiddenFor(modelItem => item.UserId)</td>
        </tr>
    

我在enter link description here 中找到了一个简单的问题,但它在我的项目中不起作用。

还有我的 javascript

@section 脚本

<script type="text/javascript">

    $(function () 

        $('.delete').on('click', function (e, data) 
            if (!data) 
                handleDelete(e, 1);
             else 
                window.location = $(this).attr("@Url.Action("DiabeticControls")");
            
        );

    );


    function handleDelete(e, stop) 
        if (stop) 
            e.preventDefault();
            swal(
                title: "Are you sure?",
                text: "You will not be able to recover the delaer again!",
                type: "warning",
                showCancelButton: true,
                confirmButtonColor: "#DD6B55",
                confirmButtonText: "Yes, delete!",
                closeOnConfirm: false
            ,
            function (isConfirm) 
                if (isConfirm) 
                    swal("Deleted", "", "success");
                    $('.delete').trigger('click', );
                
                else 
                    swal("Cancelled", "", "error");
                
            );
        
    ;





</script>

【问题讨论】:

请发布您的 JavaScript 好的,我在主帖中添加了 JavaScript ;) 我看到了对话框,但即使我点击是,也不会发生任何事情。 closeOnConfirm: false 可能与此有关。 不,我试图删除这行代码或将其设置为 true,但不幸的是它不起作用。但是,当然非常感谢您尝试帮助我;) 【参考方案1】:

好的,非常感谢您的帮助,但我找到了解决方案。问题出在我附加的库中。我用不同版本的 jquery.js、sweetalert.css 和 sweetalert.js 替换它,并根据这篇文章中的解决方案定制了我的 JavaScript:enter link description here

我的 JavaScript:

@section 脚本

<script type="text/javascript">

    $(document).ready(function () 

        $('.delete').on('click', function (e, data) 
            if (!data) 
                handleDelete(e, 1);
             else 
                window.location = $(this).attr('href');
            
        );



    );


    function handleDelete(e, stop) 
        if (stop) 
            e.preventDefault();
            swal(
                title: "Are you sure?",
                text: "You will not be able to recover the delaer again!",
                type: "warning",
                showCancelButton: true,
                confirmButtonColor: "#DD6B55",
                confirmButtonText: "Yes, delete!",
                closeOnConfirm: false
            ,
            function (isConfirm) 
                if (isConfirm) 
                    $(e.target).trigger('click', );
                
            );
        
    ;





</script>

【讨论】:

以上是关于C#,MVC 确认删除对话框的主要内容,如果未能解决你的问题,请参考以下文章

在 MVC3 中的 Ajax.Beginform 中调用自定义确认对话框

如何在 C# 中单击带有 selenium webdriver 的 javascript 确认对话框

Android:拍摄相机图片意图删除确认对话框

在删除 p:dataTable 条目之前显示确认对话框

JQuery Mobile 删除确认对话框

winform窗体点击删除按钮如何弹出确认删除对话框?