表单提交两次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的主要内容,如果未能解决你的问题,请参考以下文章