說到Unobtrusive Ajax,就要談談UnobtrusiveJavaScript了,所謂Unobtrusive JavaScript即爲非侵入式JavaScript(即將Js代碼與html代碼分離,方便閱讀與維護),是目前在Web開發領域推行的一種思想。javascript
使用VS新建一個ASP.NET MVC項目就會在~/Scripts/目錄下面看到不少以unobtrusive結尾的javascript腳本文件,如:css
今天的主角是ASP.NET MVC Unobtrusive Ajax,那麼你們應該能夠猜到主要仍是jquery.unobtrusive-ajax.js和jquery.unobtrusive-ajax.min.js這兩個文件。這就是ASP.NETMVC實現非侵入式Ajax的主要手段,若要在項目中使用Unobtrusive Ajax,那麼必定要用到這兩個文件中的一個,至於具體用哪一個就很少廢話了。下面來看看Unobtrusive Ajax在ASP.NET MVC中的使用。html
ASP.NET MVC對BeginForm的使用提供了11個重載的版本,可是細細觀察11個重載版本就會發現,這些重載中共同點是有一個AjaxOptions類型的參數,除此以外Ajax輔助方法的BeginForm和Html輔助方法的BeginForm相同參數版本之間並沒有差異,而這個AjaxOptions就是ASP.NET MVC實現Ajax方法依據。java
AjaxOptions的主要屬性有:jquery
上表中對參數進行了分組和着色以示區分其在BeginForm中的做用:ajax
設置說明:異步
爲了便於觀察測試效果,在新建的MVC項目的HomeController中增長以下Action:函數
public ActionResult Index() { return View(); } public string s(string q) { return "The Query String is : " + q; }
其中Action ‘Index’用於顯示Ajax操做頁面,Action ‘s’用來響應Ajax請求結果。Index頁面的主要內容以下:測試
1 @using (Ajax.BeginForm( 2 new AjaxOptions 3 { 4 Url = "Home/s", 5 HttpMethod = "GET", 6 UpdateTargetId = "searchResult", 7 InsertionMode = InsertionMode.Replace 8 })) 9 { 10 <input type="text" name="q" /> 11 <input type="submit" value="查詢" /> 12 } 13 14 <div id="searchResult"></div>
其做用就是生成一個表單,提交這個表單的時候執行異步的Ajax請求,並將請求結果回顯到id爲searchResult的div元素內。運行以下:url
參考資料: