Jquery 控制器的HttpPost操作被命中两次

Jquery 控制器的HttpPost操作被命中两次,jquery,asp.net-mvc,http-post,Jquery,Asp.net Mvc,Http Post,下面是我的应用程序中的确切场景 我相信这张照片清楚地解释了这个问题。请让我知道,如果你有任何问题,在理解相同的 问题是HttpPost操作被调用两次,导致在数据库中添加两个条目 如何防止这两个操作?问题在于,每次单击按钮时,您都会向表单添加一个submit()处理程序,因此,第二次提交表单时,它会两次单击您的操作,第三次单击意味着三次发布,依此类推 若要解决此问题,请修改代码,使其挂接到submit按钮的单击(),或仅挂接到表单的提交()。我更喜欢提交表格。试试这个: $("form").su

下面是我的应用程序中的确切场景

我相信这张照片清楚地解释了这个问题。请让我知道,如果你有任何问题,在理解相同的

问题是HttpPost操作被调用两次,导致在数据库中添加两个条目


如何防止这两个操作?

问题在于,每次单击按钮时,您都会向表单添加一个
submit()
处理程序,因此,第二次提交表单时,它会两次单击您的操作,第三次单击意味着三次发布,依此类推

若要解决此问题,请修改代码,使其挂接到submit按钮的
单击()
,或仅挂接到表单的
提交()
。我更喜欢提交表格。试试这个:

$("form").submit(function(e) {
    e.preventDefault();
    $.ajax({
        url: 'EditEntryInline',
        type: 'POST',
        data: $(this).serialize(),
        success: function(result) {
            if (result.success) {
                window.location.reload();
            }
            else {
                // inform the user that the save didn't work
            }
        }
    });
});

另外,您可能应该修改选择器,使用
id
,这样该代码就不会连接到页面上出现的每个表单的
submit()
事件。

您在实际表单提交中连接了另一个ajax提交。考虑将<代码>返回false;<代码>结尾。

能否请您与我们分享您的
表单
.buttonInlineSave
html?如果您能看到实际的代码而不是图片,那将是一件非常愉快的事情。他还需要
preventDefault()
谢谢您的回复,并澄清我对这一点的理解。但是删除按钮点击连接不起作用。。它仍然称动作为twiceGrate。。。谢谢event.preventDefault()成功了。。干杯,伙计。。谢谢你们俩的宝贵帮助tips@Nirman没问题。如果此答案帮助您解决了问题,请单击左侧的绿色勾号将其标记为已接受。谢谢。这是因为
preventDefault
停止了任何进一步的提交。您还应该从click事件中删除
submit()
钩子。