ASP.NET MVC5 提交后多次提交且有乱码

问题描述

在本地调试时都是正常的,可是部署到远程服务器后,同样的界面提交会重复多次,而且会出现乱码。前台代码:@using(Html.BeginForm()){@Html.AntiForgeryToken()@Html.ValidationSummary(true)<divclass="form-horizontal">@Html.HiddenFor(model=>model.Id)@Html.HiddenFor(model=>model.CreateBy)<fieldset><legend>SOA项</legend><divclass="form-group"><inputtype="button"id="btn_AddSOA"class="btnbtn-success"style="float:right;margin-right:20px"data-toggle="modal"data-target="#myModal_soa"value="添加SOA模板"/></div><divclass="form-group">@Html.LabelFor(model=>model.Name,new{@class="control-labelcol-md-2"})<divclass="col-md-10">@Html.TextBoxFor(model=>model.Name,new{@class="form-control"})@Html.ValidationMessageFor(model=>model.Name)</div>

后台代码:[HttpPost][ValidateInput(false)]publicActionResultEdit([Bind(Include="Id,SOAType,SOAUrl,SOAString,,SOAJson,Name,ItemType,Environment,Content,Description")]SOAWorkItemsoaworkitem){if(ModelState.IsValid){LogHelper.WriteInfoLog("Edit2-"+soaworkitem.Name+","+soaworkitem.SOAString);db.Entry(soaworkitem).State=EntityState.Modified;db.SaveChanges();returnRedirectToAction("Index");}returnView(soaworkitem);}

通过日志查看,可以看到这个页面提交后重复了多次,而且有乱码2016-02-1915:44:08,454[134]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,SOA%C3%FB%B3%C62016-02-1915:44:09,368[43]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,SOA%C3%FB%B3%C62016-02-1915:44:09,743[134]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,abcdefg2016-02-1915:44:09,790[138]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,SOA%C3%FB%B3%C62016-02-1915:44:09,909[138]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,SOA%C3%FB%B3%C62016-02-1915:44:09,997[43]INFOloginfo[(null)]-Edit2-abcdefg,SOA%C3%FB%B3%C62016-02-1915:44:10,133[109]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,SOA%C3%FB%B3%C62016-02-1915:44:10,287[134]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,SOA%C3%FB%B3%C62016-02-1915:44:10,378[138]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,abcde<abcfg>efg2016-02-1915:44:10,502[43]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,SOA%C3%FB%B3%C62016-02-1915:44:10,690[43]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,SOA%C3%FB%B3%C62016-02-1915:44:10,768[123]INFOloginfo[(null)]-Edit2-abcde<abcfg>efg,SOA%C3%FB%B3%C62016-02-1915:44:10,881[134]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,SOA%C3%FB%B3%C62016-02-1915:44:10,997[138]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,SOA%C3%FB%B3%C62016-02-1915:44:11,038[109]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,SOA%C3%FB%B3%C62016-02-1915:44:11,105[43]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,SOA%C3%FB%B3%C6

解决方案

解决方案二:
url编码问题System.Web.HttpUtility.UrlDecode(你的字符串)
解决方案三:
引用1楼hanjun0612的回复:

url编码问题System.Web.HttpUtility.UrlDecode(你的字符串)

谢谢你的回复,提交都是在@using(Html.BeginForm())里的,比如@Html.TextBoxFor(model=>model.Name,new{@class="form-control"})这个字段,我怎么转换编码呢?MVC不会自动转码吗?
解决方案四:
引用2楼u014548735的回复:

Quote: 引用1楼hanjun0612的回复:
url编码问题System.Web.HttpUtility.UrlDecode(你的字符串)

谢谢你的回复,提交都是在@using(Html.BeginForm())里的,比如@Html.TextBoxFor(model=>model.Name,new{@class="form-control"})这个字段,我怎么转换编码呢?MVC不会自动转码吗?

后台action里面,使用System.Web.HttpUtility.UrlDecode试试
解决方案五:
引用3楼hanjun0612的回复:

Quote: 引用2楼u014548735的回复:
Quote: 引用1楼hanjun0612的回复:
url编码问题System.Web.HttpUtility.UrlDecode(你的字符串)

谢谢你的回复,提交都是在@using(Html.BeginForm())里的,比如@Html.TextBoxFor(model=>model.Name,new{@class="form-control"})这个字段,我怎么转换编码呢?MVC不会自动转码吗?

后台action里面,使用System.Web.HttpUtility.UrlDecode试试

还是有乱码,关键是我在本地调试的时候,Action只被调用一次,但是部署到远程的IIS上,Action在一次提交时被调用了N次,而且有乱码,怀疑是不是IIS配置问题啊。
解决方案六:
你先F12自己测试下,看提交后,到底有多少个请求,先确认是不是多次提交问题
解决方案七:
引用5楼starfd的回复:

你先F12自己测试下,看提交后,到底有多少个请求,先确认是不是多次提交问题

用Fiddler看过,就一个请求,可以是我在Action里的Log被执行了多次,就是问题里的日志:2016-02-1915:44:10,133[109]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,SOA%C3%FB%B3%C62016-02-1915:44:10,287[134]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,SOA%C3%FB%B3%C62016-02-1915:44:10,378[138]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,abcde<abcfg>efg2016-02-1915:44:10,502[43]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,SOA%C3%FB%B3%C62016-02-1915:44:10,690[43]INFOloginfo[(null)]-Edit2-SOA%C3%FB%B3%C6,SOA%C3%FB%B3%C62016-02-1915:44:10,768[123]INFOloginfo[(null)]-Edit2-abcde<abcfg>efg,SOA%C3%FB%B3%C6所以很奇怪啊
解决方案八:
自己顶一下。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

时间: 2024-11-09 23:58:18

ASP.NET MVC5 提交后多次提交且有乱码的相关文章

html-关于submit的input按钮点击提交后弹出提交成功框,不能正常显示的问题。

问题描述 关于submit的input按钮点击提交后弹出提交成功框,不能正常显示的问题. 是这样的,我的一个提交按钮点击后会弹出一个成功的的页面.由于这个提交框也是点击其他按钮后才出现的,结果我一点几提交按钮,整个全部消失了,请问这是什么原因? 解决方案 试着写一个普通的按钮,然后完全用js控制提交试试,submit类型的input按钮有一些默认的行为的. 解决方案二: 是不是你点了提交以后 重新加载了呢?

实时显示-ASP表单提交后显示等待 后台管理选择通过或者不通过 然后前台跳转

问题描述 ASP表单提交后显示等待 后台管理选择通过或者不通过 然后前台跳转 前台提交一个表单 点提交后显示正在提交 然后后台显示表单内容 选择通过验证后 前台正在提交就变成提交成功 选择不通过 前台就显示提交失败 求大神写个实例代码 没有C币了 解决方案 if Request.Forms("表单名") = 正确的内容 then Response.Redirect("正确.asp") else Response.Redirect("错误.asp"

EXT4.0 form 提交成功并reset后,再提交仍成功,保存的是上次提交的数据?

问题描述 tab2.form.doAction("submit",{url:"candidate.action",method:"post",success:function(form,action){Ext.Msg.alert("SaveSuccessful",action.result.msg);tab2.getForm().reset();},failure:function(form,action){Ext.Msg.a

谁能给我一个表单提交的网站程序,asp的,最好能把用户提交的资料保存在一网页上,而且用户点击确实提交后,跳转到的网页是自己任意设置的

问题描述 谁能给我一个表单提交的网站程序,asp的,最好能把用户提交的资料保存在一网页上,而且用户点击确实提交后,跳转到的网页是自己任意设置的 解决方案 解决方案二:这个自己写1个很简单啊,貌似现成的没有,表单字段都是灵活的啊,没法有固定的模板!

请教高手解决一下asp.net 提交后显示数据问题

问题描述 visualstudio2010,在Textbooks后设置RequiredFieldValidator5(不能为空)连接了数据库,是可以提交进去的还在当前页面formview下面添加了一个linkbutton(点击能出现已提交的数据)问题:当进入页面直接点击linkbutton时(数据库中初始是有数据的),页面显示RequiredFieldValidator5(不能为空)why?是不应该出现的(描述的不大清楚,见谅) 解决方案 解决方案二:什么?解决方案三:数据库中有数据,并不意味着

ASP安全设置:禁止从外部提交数据

使用asp尽量减少服务器端的工作量,这样就应该多使用javascript,把所有提交字段使用javascript或vbscript检测后提交给服务器,这样服务器就不必再作检测,而在提交时可能会有人修改script从本地提交,这样存在安全提交的问题,所以应该要求从服务器断路径提交,其他地址提交提交无无效: <% dim server_v1,server_v2 server_v1=Cstr(Request.ServerVariables("HTTP_REFERER")) server

mvc4表单提交后控件器验证失败如何返回提交表单前的页面

问题描述 各位大侠,小弟刚学mvc4不久,请大家帮忙.问题如下:mvc4表单提交后控件器验证失败如何返回提交表单前的页面,提交表单页面有使用Ajax请求联动的下拉框,我想在提交表单后,如果控制器验证错误,还要反回页面继续修改表单. 解决方案 解决方案二:参看引用3楼Asa_Jim的回复: 这很简单啊,举两个例子页面里面写functiondelComplement(id){ajaxpost('/AfterSales/Complement_Delete_Array',{hid_ID:id},func

submit-form表单提交后ajax异步调用另一个url

问题描述 form表单提交后ajax异步调用另一个url ... ... 提交Submit function submitForm(){ if(_finst_taskComment.value==""){ alert("请填写审批意见"); }else{ document.getElementsByTagName("form")[0].submit(); } } 另一个url如http://........ 解决方案 function submi

为什么程序在vc6.0编译通过并且运行正确但是在编程挑战时提交后却是运行结果不对

问题描述 为什么程序在vc6.0编译通过并且运行正确但是在编程挑战时提交后却是运行结果不对 编程挑战试了几次都是结果不对,但是我在vc6.0编译后运行的结果是正确的啊! 解决方案 这个有很多原因,比如说,你的程序本身有bug,虽然可以通过某些测试用例,但是oj使用的是另外的用例,没有通过,或者是你的程序在运行时间和使用内存上不符合要求,或者你的程序输入输出部分有问题,使得oj程序没法传递正确的测试用例,以及获取你的输出.还可能你使用了额外的库,而oj没有,你的编译器和oj的不同,造成编译上的细微