从ASP MVC 3 Preview更新到Beta后,表单提交了两次

Mar*_*tin 16 asp.net-mvc-3

将我的ASP MVC从3 Preview升级到3 Beta后,我在Ajax表单中看到了奇怪的行为.

@using(Ajax.BeginForm("New", new AjaxOptions() {OnSuccess = "onAjaxSuccess", OnFailure = "onAjaxFailure", OnBegin = "onAjaxBegin", HttpMethod = "Post"})) {}

<form action="/Order/New" data-ajax="true" data-ajax-begin="onAjaxBegin" data-ajax-failure="onAjaxFailure" data-ajax-method="Post" data-ajax-success="onAjaxSuccess" method="post"></form>
Run Code Online (Sandbox Code Playgroud)

我已经放置了一个alert内部函数onAjaxBegin,每次点击我的提交按钮都会被激活两次.

其他人看到过这种行为吗?升级后我没有更改代码中的任何内容,它在升级之前完美运行.

小智 33

我有同样的问题,我找到了解决方案:我包括了两次" - jquery.unobtrusive-ajax.min.js"-Script

  • 你节省了我的一天:)不知道为什么bundle包括dev和min版本的unobtrusive.ajax脚本 (2认同)

Dar*_*rov 14

查看生成的HTML.在ASP.NET MVC 3 Beta中,对基于jquery的不引人注目的ajax提供了新的支持,所有Ajax助手现在都使用jquery.也许MS Ajax会留下一些导致双重调用的东西.确保从页面中删除所有MSAjax脚本包含.也就是为什么Ajax.BeginForm当你可以简单地使用Html.BeginForm不显眼的jquery 时使用?


Avi*_*zra 7

jquery.unobtrusive-ajax.min.js如果您的控制器返回View()而不是,则也会发生重复PartialView().