如何在Javascript中定义URL以调用驻留在控制器中的ActionResult方法

时间:2014-12-12 11:02:14

标签: javascript ajax asp.net-mvc entity-framework crud

我使用Entity Framework在MVC中创建了Web应用程序来执行CRUD操作。在我删除任何记录时,我删除视图然后我能够删除该记录。但我没有这样做,我希望有一个警告框,通过java脚本说明“你确定要删除此记录”,然后不与用户说话,我想删除该记录。

我正在使用以下选项,但它没有帮助...

$(function () {
    $('table.dataList tbody a[linktype="Delete"]').click(function (e) {
        e.preventDefault();
        $.ajax({
            type: 'POST',
            url: '/DepartmentController/DeleteConformed/',
            dataType: 'script',
            success: function () {
                alert('Are you sure you want to Delete this Department');
            },
            error: function (req, status, err) {
                alert(err);
            }
        });
    });

缓存错误表明“未找到”。在说明URL时我是否犯了任何错误。

3 个答案:

答案 0 :(得分:4)

在已经发送了对服务器的请求并且记录已被删除之后,调用<{1}}回调。

您需要在执行Ajax请求之前确认用户意图,通常使用success方法。

类似的东西:

window.confirm

请参阅Documentation

答案 1 :(得分:0)

使用jquery对话框。在您的视图中添加:

<div id="confirm-dialog"></div>

并更改您的功能:

$('table.dataList tbody a[linktype="Delete"]').click(function (e) {
    e.preventDefault();
    $("#confirm-dialog").dialog({
        title: "Are you sure you want to delete this Department?",
        autoOpen: false,
        modal: true,
        height: 'auto',
        close: function () {
            $(this).dialog("close");
        }
    });

    $("#confirm-dialog").dialog({
        buttons: {
            "OK": function () {
                $.ajax({
                    type: 'POST',
                    url: '/DepartmentController/DeleteConformed/',
                    dataType: 'script',
                    success: function () {
                        alert('Are you sure you want to Delete this Department');
                    },
                    error: function (req, status, err) {
                        alert(err);
                    }
                });
            },
            "Cancel": function () {
                $(this).dialog("close");
            }
        }
    });
 });

答案 2 :(得分:0)

当前您正在执行的操作会调用操作方法,并且只有在您确认对话框显示之后。我认为你需要反过来。假设您的视图中有一个按钮,导致用户删除某个记录,我会这样做。首先,我会在客户端有一个功能,只是要求用户确认他/她是否确定并将按钮设置为单击该功能。

 function confirmDelete(){
    $('<div id="dialog">').dialog({
             text:"Are you sure you want to delete?",
             modal:true,
             buttons:[{
                text: 'Yes',
                click: yesDeleteIt()
                },
             {
                text: 'No',
                click: function ()
                {
                   $(this).dialog('close');
                }
             }]
       })
 }

在你的yesDeleteIt函数中你可以去AJAX:

  function yesDeleteIt(){
     url= '/Department/DeleteConformed/';
     $.post(url);//
  }