asp.net-mvc-3 – Action在提交时执行两次
发布时间:2020-12-16 06:23:57 所属栏目:asp.Net 来源:网络整理
导读:我的控制器动作正在执行两次. Fiddler显示两个请求和响应,第一个有一个图标,表示“会话被客户端,Fiddler或服务器中止”. 但我无法弄清楚这是怎么回事,或者为什么. 以下是具体内容: 我有一个视图(ThingFinancials)的部分看起来像这样: @{ using (Html.Begin
我的控制器动作正在执行两次. Fiddler显示两个请求和响应,第一个有一个图标,表示“会话被客户端,Fiddler或服务器中止”.
但我无法弄清楚这是怎么回事,或者为什么. 以下是具体内容: 我有一个视图(ThingFinancials)的部分看起来像这样: @{ using (Html.BeginForm("ConfirmThing","Thing",null,FormMethod.Get,new { id = "frmGo" })) { @Html.HiddenFor(model => model.ThingID) <button id="btnGo"> Thing is a Go - Notify People</button> } } btnGo的javascript看起来像这样: $("#btnGo").click(function () { var form = $("#frmGo"); form.submit(); }); 动作(剥离)看起来像这样: public ActionResult ConfirmThing(int thingID) { [do some database stuff] [send some emails] var financials = GetFinancials(thingID); return View("ThingFinancials",financials); } 对我来说唯一不寻常的是你看到的URL会以[Website] / Thing / ThingFinancials / 47开头,提交后的URL会是[Website] / Thing / ConfirmThing?ThingID = 47. (如果您想知道为什么Action名称与View名称不匹配,那是因为ThingFinancials上有多个表单标签,并且它们不能都具有相同的操作名称.) 是否有Server.Transfer在幕后发生,或类似的东西? 解决方法
如果您使用提交按钮,则需要在使用javascript提交时取消默认行为,否则您将提交两次.试试这个:
$("#btnGo").click(function () { var form = $("#frmGo"); // event.preventDefault(); doesn't work in IE8 so do the following instead (event.preventDefault) ? event.preventDefault() : event.returnValue = false; form.submit(); }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 版本弃用Facebook Graph API v2.2
- 处理ASP.Net MVC中的过期标题
- ASP / C#会话变量 – 未将对象引用设置为对象的实例
- ASP.NET知识点总结2
- 嵌套的ASP.NET’应用程序’在IIS内继承父配置值?
- ASP.NET没有魔法——ASP.NET Identity 的“多重”身份验证代
- asp.net – 如何在web.config中加密连接
- asp.net-mvc – MVC – 重定向在构造函数内
- asp.net-mvc – 在实时服务器上使用oauth登录失败
- 选择List返回System.Data.Entity.DynamixProxies而不是MVC
推荐文章
站长推荐
热点阅读