加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

Ajax.BeginForm()知多少

发布时间:2020-12-15 21:21:53 所属栏目:asp.Net 来源:网络整理
导读:在ASP.NET MVC中,Ajax.BeginForm扮演着异步提交的重要角色。其中就有五个重载方法,但是在实际应用中,你未必使用的得心应手,今天我们就从主要的参数来一探究竟。 用于指定请求地址的Action名称。 用于指定请求地址的Controller名称。 用来传递参数,支持

在ASP.NET MVC中,Ajax.BeginForm扮演着异步提交的重要角色。其中就有五个重载方法,但是在实际应用中,你未必使用的得心应手,今天我们就从主要的参数来一探究竟。重载方法

用于指定请求地址的Action名称。

用于指定请求地址的Controller名称。

用来传递参数,支持两种数据类型(两种传参方式):

  • object类型可以在使用时直接以匿名类方式声明,使用非常方便 举例:new { id = 1,type = 1 }
  • RouteValueDictionary类型实现了IDictionary接口,因此在使用时可以用键值对方式声明 举例:new RouteValueDictionary{ {"id",1},{"type",1} }

用于指定生成form表单的html属性。也支持两种赋值方式:

  • object类型可以在使用时直接以匿名类方式声明,使用非常方便 举例:new{id = "frm",@class = "cls" }由于class是C#中的关键字,因此需要在前面加@符号
  • IDictionary类型使用灵活,可以在一个地方声明,多个地方调用,或修改后使用,举例:
Dictionary htmlAttr = new Dictionary
{
 {"id","frm"},{"class","cls"}
};

生成的代码:

ajaxOptions 参数列表

看到这么多的参数,是不是一脸懵逼,且听我一一讲解。

  1. Confirm,就是在提交时会弹出一个确认框,一般不常用。new AjaxOption(){Confirm:"确认提交?"}
  2. HttpMethod,就是设置请求类型,默认为post。new AjaxOption(){HttpMethod = "GET"}
  3. UpdateTargetId,就是设置请求返回的数据/元素更新到哪个Dom元素中。
  4. InsertionMode,设置返回结果更新指定Dom元素的方式,默认为Replace。
  5. LoadingElementId,LoadingElementDuration设置提交实际的加载动画效果。
  6. Url,用来当未指定Action,Controller时,直接在AjaxOption中指定请求的Url。@using (Html.BeginFrom( new AjaxOptions(){Url= '/Tasks/Create'})){ }
  7. AllowCache,标记是否使用缓存。
  8. OnBegin,OnComplete,OnFailure,OnSuccess,是用于指定回调的js函数。

下面我将具体讲解第5和第8个的具体用法。

  • 定义加载动态元素,并设置css样式:div#loading { display: none; }
  • 在form中指定LoadingElementId
@using (Ajax.BeginForm(MVC.Account.Login(),new AjaxOptions { 
OnSuccess = "onLoginSuccess",LoadingElementId = "loading",OnBegin = "onLoginBegin" },new { @id = "loginForm" })){ }
  • 定义js函数,隐藏加载动画。