表单提交两次mvc

Posted

技术标签:

【中文标题】表单提交两次mvc【英文标题】:Form is submitted twice mvc 【发布时间】:2014-11-03 23:57:08 【问题描述】:

点击提交按钮时我有一个ajax表单提交两次意味着控件两次进入控制器操作方法,我无法找到解决方案。

【问题讨论】:

除了@Ehsan 建议的内容之外,您还可以检查按钮是否为“提交”输入类型,并且同一提交按钮的某些客户端javascript/jquery 事件没有再次提交您的表单。 是的,我已经检查过了,谢谢@Siva Gopal 【参考方案1】:

我怀疑您在页面、主布局和子视图中多次包含 jquery-unobtrusive-ajax.js,导致表单被多次发布。

在这种情况下,它被包含两次,因此表单发布了两次。您必须确保它只包含一次,包含它_Layout.cshtml 并从所有子视图中删除。

这些脚本默认包含在_layout.cshtml 视图中,因此如果您再次将它们包含在子视图中,它会导致表单发布两次

【讨论】:

~/Scripts/jquery.unobtrusive-ajax.js ~/Scripts/jquery.validate.unobtrusive.js ~/Scripts/jquery.validate.js 这三个都包含在我的视图中@Ehsan Sajjad 您在主布局或视图中包含哪个视图,发布您的主布局和您拥有 Ajax 表单的视图 谢谢,我已删除 ~/Scripts/jquery.unobtrusive-ajax.js 并且工作正常@Ehsan Sajjad。 脚本默认包含在_layout.cshtml 视图中,因此如果您再次将它们包含在子视图中,它将导致它两次发布表单 我已将 unobtrusive.js 包含在一个包中,并且该包在 _Layout 上使用 @Scripts.Render("~/bundles/jquery") 加载了两次。删除一个重复引用的相同解决方案有效。

以上是关于表单提交两次mvc的主要内容,如果未能解决你的问题,请参考以下文章

用 $.ajax 提交表单是不是矛盾?

为啥我的表单提交两次?

为啥我需要在提交按钮上单击两次才能提交我的表单?

jQuery提交表单两次

不提交表单的 MVC 表单验证

为啥在表单操作页面中结构键值显示两次像“提交,提交”?