关闭页面特效

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

 


__EOF__

作  者ღKawaii
出  处https://www.cnblogs.com/kmsfan/p/ajax_beginForm_vs_html_BeginForm.html
关于博主:一个普通的小码农,为了梦想奋斗
版权声明:署名 - 非商业性使用 - 禁止演绎,协议普通文本 | 协议法律文本
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!

posted @   yangliwen  阅读(1910)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
0
0
关注
跳至底部
document.getElementById("homeTopTitle").innerText="ღKawaii";
点击右上角即可分享
微信分享提示