控制器的HttpPost动作被击中两次
以下是我的应用程序中的确切方案。
我相信这张照片清楚地解释了这个问题。 如果您对此有任何疑问,请告诉我。
问题是HttpPost操作被调用两次导致在数据库中添加两个条目。
如何防止这2个动作?
问题是因为每次单击按钮时都会向表单添加一个submit()
处理程序,因此第二次提交表单时,它会两次点击您的操作,第三次点击表示三个post,依此类推。
要解决此问题,请修改代码以挂钩提交按钮的click()
或表单的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提交。 考虑把return false;
在末尾。