Ajax.BeginForm VS Html.BeginForm
有的人说,AJAX一听,高大上,HTML一听,死老土,所以AJAX更好。其实这是错误的。每种方法有它不同的用途。现在做如下总结:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | @ using (Ajax.BeginForm( "Login" , "Account" , new AjaxOptions { //InsertionMode=InsertionMode.Replace, HttpMethod = "POST" , //OnFailure="searchFailed", //LoadingElementId="ajax-loader", UpdateTargetId = "LogonContainer" , OnSuccess = "123 " })) { <h2 class = "form-signin-heading" >欢迎登陆</h2> @Html.TextBoxFor(m => m.UserName, new { @ class = "form-control" , @placeholder = "Email Address" , @required = "true" , @autofocus = "true" }) @Html.PasswordFor(m => m.Password, new { @ class = "form-control" , @placeholder = "PassWord" , @required = "true" }) @Html.LabelFor(m => m.Password, new { @id = "ajax-loader" , @style = "display:none" }) <label class = "checkbox" > <input type= "checkbox" value= "记住我" />阅读用户协议 </label> <button class = "btn btn-lg btn-primary btn-block" id= "submitBtn" type= "submit" >登陆</button> } |
上面用的是AJAX.BeginForm 中如果更新了(不管成功或失败,反正都会返回东西吧?)
UpdateTargetId 这个东西就是你要刷新的DIV,你的返回的结果都往这里面丢。
而且最重要的一点区别是Ajax.BeginForm不会改变浏览器地址栏的地址,尽管你刷新了,不然怎么叫AJAX呢?
好了,下面的html.beginform就好理解了,如果你提交了,返回什么就是什么,而且如果你跳到另一个页面的话,页面地址栏会发生变化。
而Ajax.BeginForm呢?只会往UpdateTargetId里面填充你返回的结果,但是其他地方不刷新!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | @ using (Html.BeginForm( "Login" , "Account" , FormMethod.Post, new { @role = "form" , @ class = "form-signin" })) { <h2 class = "form-signin-heading" >欢迎登陆</h2> @Html.TextBoxFor(m => m.UserName, new { @ class = "form-control" , @placeholder= "Email Address" , @required= "true" ,@autofocus= "true" }) @*<input type= "text" class = "form-control" placeholder= "Email Address" required autofocus />*@ @Html.PasswordFor(m => m.Password, new {@ class = "form-control" , @placeholder= "PassWord" ,@required= "true" }) <label class = "checkbox" > <input type= "checkbox" value= "记住我" />阅读用户协议 </label> <button class = "btn btn-lg btn-primary btn-block" id= "submitBtn" >登陆</button> |
所以简单点说,就是你需要做无刷新的时候要用AJAX更好,而有刷新的话,肯定选传统的html.beginform方式!好了,总结到这里了,以前一直不太懂这2者的区别,今天总算是弄懂了。特此总结。

作者:
KMSFan
出处:http://www.cnblogs.com/kmsfan
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
欢迎大家加入KMSFan之家,以及访问我的优酷空间!
出处:http://www.cnblogs.com/kmsfan
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
欢迎大家加入KMSFan之家,以及访问我的优酷空间!
【推荐】FlashTable:表单开发界的极速跑车,让你的开发效率一路狂飙
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步