zoukankan      html  css  js  c++  java
  • Ajax.BeginForm VS Html.BeginForm

      有的人说,AJAX一听,高大上,HTML一听,死老土,所以AJAX更好。其实这是错误的。每种方法有它不同的用途。现在做如下总结:

                @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里面填充你返回的结果,但是其他地方不刷新!

               @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者的区别,今天总算是弄懂了。特此总结。

  • 相关阅读:
    个人心情闲扯贴~~
    近阶段学习感悟--大一下半学期
    HDU 1003 Max Sum 解题报告
    开始我的新园地--献给我的那些学长们
    软件公司职位简称
    Sql Server参数化查询之where in和like实现详解 [转]
    21个值得收藏的Javascript技巧
    [转]js刷新父窗体
    Oracle10g 连接 sqlserver 在server2008r2 中连接 iis7 .net4.0
    Oracle10g 连接 sqlserver hsodbc dblink 方式 非透明网关
  • 原文地址:https://www.cnblogs.com/kmsfan/p/ajax_beginForm_vs_html_BeginForm.html
Copyright © 2011-2022 走看看