Ajax.Beginform()的五个参数
一、actionName
用于指定请求地址的Action名称。
二、controllerName
用于指定请求地址的Controller名称。
三、routeValues
用来传递参数,支持两种数据类型(两种传参方式):
- object类型可以在使用时直接以匿名类方式声明,使用非常方便
举例:new { id = 1, type = 1 }
- RouteValueDictionary类型实现了IDictionary<string, object>接口,因此在使用时可以用键值对方式声明
举例:new RouteValueDictionary{ {"id", 1}, {"type", 1} }
四、htmlAttributes
用于指定生成form表单的html属性。也支持两种赋值方式:
- object类型可以在使用时直接以匿名类方式声明,使用非常方便
举例:new{id = "frm", @class = "cls" }
由于class是C#中的关键字,因此需要在前面加@符号 - IDictionary<string, object>类型使用灵活,可以在一个地方声明,多个地方调用,或修改后使用,举例:
Dictionary<string, object> htmlAttr = new Dictionary<string, object>
{
{"id","frm"},
{"class", "cls"}
};
生成的代码:<form action="/Home/Index/1?type=1" class="cls" data-ajax="true" id="frm" method="post">
五、ajaxOptions
看到这么多的参数,是不是一脸懵逼,且听我一一讲解。
- Confirm,就是在提交时会弹出一个确认框,一般不常用。
new AjaxOption(){Confirm:"确认提交?"}
- HttpMethod,就是设置请求类型,默认为post。
new AjaxOption(){HttpMethod = "GET"}
- UpdateTargetId,就是设置请求返回的数据/元素更新到哪个Dom元素中。
- InsertionMode,设置返回结果更新指定Dom元素的方式,默认为Replace。
- LoadingElementId,LoadingElementDuration设置提交实际的加载动画效果。
- Url,用来当未指定Action,Controller时,直接在AjaxOption中指定请求的Url。
@using (Html.BeginFrom( new AjaxOptions(){Url= '/Tasks/Create'})){ }
- AllowCache,标记是否使用缓存。
- OnBegin, OnComplete, OnFailure, OnSuccess,是用于指定回调的js函数。