问题描述
在本地调试时都是正常的,可是部署到远程服务器后,同样的界面提交会重复多次,而且会出现乱码。前台代码:@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所以很奇怪啊
解决方案八:
自己顶一下。。。。。。。。。。。。。。。。。。。。。。。。。。。。。