asp.net mvc Ajax.BeginForm不能异步刷新,或转到新页面,或页面还是刷新了,的原因(或解决办法)

asp.net mvc Ajax.BeginForm不能异步刷新,或转到新页面,或页面还是刷新了,的原因(或解决办法)

昨天搞了一下午的Ajax.BeginForm都没能实现异步刷新,一直将返回的数据提交到新的页面,在网上搜了n多方法都不行,问了n多人都没能搞定,今天大一早,就意外的被我发现了问题所在。

布局页:

  1. <div id="upload-body">  
  2.     <div id="returnData" style="display:none"></div>  
  3. @using (Ajax.BeginForm("Index", "Test",   
  4.     new AjaxOptions {   
  5.         InsertionMode = InsertionMode.Replace,  
  6.         HttpMethod = "Post",  
  7.         //UpdateTargetId = "returnData",   
  8.         OnSuccess = "Reload(data)",  
  9.         OnFailure="DisplayError(data)" }))  
  10. {  
  11.     <fieldset>  
  12.         <legend> no fresh to upload data</legend>  
  13.         User Name:@Html.TextBoxFor(m=>m.UserName)  
  14.         <input type="submit" value="Submit" />  
  15.     </fieldset>  
  16. }  
  17.     </div>  
  18.   
  19.       

[javascript] view plain copy
  1. <script type="text/ecmascript">  
  2.     function Reload(data) {  
  3.         alert(data);  
  4.     }  
  5.     function DisplayError(data) {  
  6.         alert(data);  
  7.     }  
  8. </script>  
[javascript] view plain copy
  1. 引入jquery.unobtrusive-ajax.js:  
  2. <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script>  
control:
[csharp] view plain copy
  1. [HttpPost]  
  2.         public JsonResult Index(Models.TestModels.TestModel testModel)  
  3.         {  
  4.             return Json("Hi,"+testModel.UserName, JsonRequestBehavior.AllowGet);  
  5.         }  
然后就出现了问题:

提交后:


这不是想要的结果,美好的结果是:页面不会刷新或跳转页面。然后就开始查找问题,看看jquery.unobtrusive-ajax.js是否引用到,



确实引用到了,然后上网找啊找,确实没啥可用资源,各种方法都试过了,问题还是没解决,唉,难道Ajax.BeginForm只是徒有其名,心里默默暗骂:真%¥垃圾%¥!#¥%...

昨天晚上无果而归。

今天早上来到公司,再次用Chrome打开,擦,惊奇的发现:


瞬间内心产生一丝狂暴的欣喜,莫非是因为这,不对呀,确认已经引用过了呀?

仔细观察倒数第三张图,再次惊奇的发现,jquery在jquery.unobtrusive-ajax之后,


原来_Layout.cshtml的引用在最下面,嘿嘿,所以果断直接把jquery.unobtrusive-ajax的引用放在了jquery后,


再次运行:



哈哈,效果真心不错,顿时,心中不禁对Ajax.BeginForm产生了无比的崇敬与钦佩,真是太吊了!


总结:1、注意jQuery和其他js的引用顺序。

            2、asp.net mvc Ajax.BeginForm不能异步刷新,或转到新页面

必须使用1.8.20的版本(若使用1.7.1会跳转到新页面)




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值