1. 程式人生 > >mvc提供的ajax表單提交方法

mvc提供的ajax表單提交方法

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

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函式。