Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MVC:Javascript确认删除操作不起作用_Javascript_Asp.net Mvc - Fatal编程技术网

MVC:Javascript确认删除操作不起作用

MVC:Javascript确认删除操作不起作用,javascript,asp.net-mvc,Javascript,Asp.net Mvc,我对MVC和Javascript非常陌生;我试图使删除操作正常工作;我使用带有Javascript函数的ActionLink进行确认。JAvascript确认不起作用,甚至当我按下Cancel时,删除操作也会被触发;此外,我似乎无法对操作使用[HttpDelete]动词:我需要向删除操作传递两个参数,但在它搜索的操作链接上应用@Html.HttpMethodOverride(Http.Delete)之后 对于只有一个parmaeter:id的URL 这是我的代码:动作链接 @Html.Http

我对MVC和Javascript非常陌生;我试图使删除操作正常工作;我使用带有Javascript函数的ActionLink进行确认。JAvascript确认不起作用,甚至当我按下Cancel时,删除操作也会被触发;此外,我似乎无法对操作使用[HttpDelete]动词:我需要向删除操作传递两个参数,但在它搜索的操作链接上应用@Html.HttpMethodOverride(Http.Delete)之后 对于只有一个parmaeter:id的URL

这是我的代码:动作链接

 @Html.HttpMethodOverride(HttpVerbs.Delete)
  @Html.ActionLink(
                "Delete", 
                "Delete", 
                new {id=notification.Id, typeId=notification.TypeId}, 
                new {onclick="confirmDeleteAction()"})

function confirmDeleteAction() {       
    return confirm('Are you sure you want to delete the notification ?');        
}
删除操作:

   [HttpDelete]
    public ActionResult Delete(int id, int typeId)
    {
        Service.DeleteNotification(id, typeId);

        NewIndexViewModel model = Service.GetNewIndexViewModel();
        return View("Index", model);
    }

当用户单击“取消”时,您需要取消浏览器的默认行为。您可以通过将
confirmDeleteAction()
的结果返回到您的
标记来执行此操作:

@Html.ActionLink(
                "Delete", 
                "Delete", 
                new {id=notification.Id, typeId=notification.TypeId}, 
                new {onclick="return confirmDeleteAction()"})
为清楚起见,我将
return
关键字添加到
onclick
处理程序中,该处理程序将
confirmDeleteAction()
的结果返回到浏览器-

true
=执行链接的默认行为


false
=什么都不做

当用户单击“取消”时,需要取消浏览器的默认行为。您可以通过将
confirmDeleteAction()
的结果返回到您的
标记来执行此操作:

@Html.ActionLink(
                "Delete", 
                "Delete", 
                new {id=notification.Id, typeId=notification.TypeId}, 
                new {onclick="return confirmDeleteAction()"})
为清楚起见,我将
return
关键字添加到
onclick
处理程序中,该处理程序将
confirmDeleteAction()
的结果返回到浏览器-

true
=执行链接的默认行为

false
=什么都不做

试试这个

 @Html.ActionLink(
            "Delete", 
            "Delete", 
            new {id=notification.Id, typeId=notification.TypeId}, 
            new {onclick="return confirmDeleteAction();"})
试试这个

 @Html.ActionLink(
            "Delete", 
            "Delete", 
            new {id=notification.Id, typeId=notification.TypeId}, 
            new {onclick="return confirmDeleteAction();"})

您也可以通过以下方式执行此类型

@Html.ActionLink(
                "Delete", 
                "Delete", 
                new {id=notification.Id, typeId=notification.TypeId}, 
                new {onclick="confirmDeleteAction(" + notification.Id + ")" })


function OnDeleteClick(id) {
                    var ActionID = id;
                    var flag = confirm('Are you sure you want to delete this record?');
                    if (flag) {
                return true;
                }
        else{
        return false;
        }

您也可以通过以下方式执行此类型

@Html.ActionLink(
                "Delete", 
                "Delete", 
                new {id=notification.Id, typeId=notification.TypeId}, 
                new {onclick="confirmDeleteAction(" + notification.Id + ")" })


function OnDeleteClick(id) {
                    var ActionID = id;
                    var flag = confirm('Are you sure you want to delete this record?');
                    if (flag) {
                return true;
                }
        else{
        return false;
        }

若要传递两个参数以删除方法,您必须在Route.config fileVisit中添加一个条目。若要使用verbs传递两个参数以删除方法,您必须在Route.config fileVisit中添加一个条目。若要使用有效的verbs,谢谢!只剩下一个问题:在使用HttpDelete动词时使动作起作用;知道为什么我不能将两个参数传递给一个带有HttpDelete动词的动作吗?@OctavianEpure尝试删除动词,然后它将在简单的MVCI中工作。知道它在没有动词的情况下工作,我只是想使用HttpDelete动词来避免使用GET。我在这里找到了一篇文章,其中解释了安全原因。此外,我想避免张贴,因为我已经在表单上有一个提交按钮。这是一个复杂的索引视图,可以从中触发多个操作:添加、编辑、删除、归档项目,我不想用多个post操作使其过于复杂,也不想使用安全的方式进行删除。否则,我可以使用GET-delete操作,希望一切顺利:)这很有效,谢谢!只剩下一个问题:在使用HttpDelete动词时使动作起作用;知道为什么我不能将两个参数传递给一个带有HttpDelete动词的动作吗?@OctavianEpure尝试删除动词,然后它将在简单的MVCI中工作。知道它在没有动词的情况下工作,我只是想使用HttpDelete动词来避免使用GET。我在这里找到了一篇文章,其中解释了安全原因。此外,我想避免张贴,因为我已经在表单上有一个提交按钮。这是一个复杂的索引视图,可以从中触发多个操作:添加、编辑、删除、归档项目,我不想用多个post操作使其过于复杂,也不想使用安全的方式进行删除。否则,我可以使用GET delete操作,希望一切顺利:)