AJAX的好處就是不會堵塞頁面,可以提高用戶體驗(yàn),可以減少數(shù)據(jù)傳輸尺寸,提高應(yīng)用程序的性能.目前,AJAX技術(shù)可以說是已經(jīng)成為WEB開發(fā)的標(biāo)準(zhǔn)技術(shù). AJAX技術(shù)是純客戶端技術(shù),任何客戶端框架(如:Microsoft AJAX Library,Prototype,JQuery等)可以與任何服務(wù)器技術(shù)配合.在ASP.NET MVC P5中也對AJAX技術(shù)進(jìn)行了整合.本文將以ASP.NET MVC中的AJAX應(yīng)用為主題介紹下AJAX技術(shù)與ASP.NET MVC的整合應(yīng)用. 在此我希望在閱讀本文的你應(yīng)該對AJAX技術(shù)的數(shù)據(jù)傳輸模式比較清楚,詳細(xì)可以查看我之前寫的兩篇關(guān)于AJAX的數(shù)據(jù)傳輸模式的文章:探索AJAX中的消息傳輸模式(一) 探索AJAX中的消息傳輸模式(二) 一、實(shí)現(xiàn)原理分析 在ASP.NET MVC中,每一個(gè)請求(Request)都將會被Route到控制器(Controller)下的一個(gè)具體的行為(Action)來處理.那么,如果說我們需要在ASP.NET MVC中使用AJAX,只需要在Action方法中完成業(yè)務(wù)邏輯,并把需要回傳的數(shù)據(jù)寫回到Response中,在客戶端就可以通過JavaScript來處理這些回傳數(shù)據(jù). 對的,以上思路是完全可行的,ASP.NET MVC的每個(gè)Action就相當(dāng)于Java Web MVC框架的Struts里的Servliet一樣,是完全可以通過Request請求和Response來響應(yīng)請求的. 我們可以先做個(gè)測試,建立一個(gè)ASP.NET MVC應(yīng)用程序,Views里新建立Ajax目錄,以及新建一Controller(AjaxController),并提供一個(gè)Action方法AjaxServer,該方法需要接受一個(gè)參數(shù),然后將參數(shù)傳轉(zhuǎn)換為大寫后放入Response流. 這個(gè)應(yīng)用示例將使用最原始的XMLHttpRequest對象來完成。如下示例代碼: 1
![]() 2 ![]() 3 ![]() 4 ![]() ![]() 5 ![]() 6 ![]() ![]() 7 ![]() 8 ![]() 9 ![]() 10 ![]() ![]() 11 ![]() 12 ![]() 13 ![]() 14 ![]() 15 ![]() 16 ![]() 17 ![]() ![]() 18 ![]() 19 ![]() 20 ![]() 21 ![]() 22 ![]() 23 ![]() 24 ![]() 25 ![]() 26 ![]() 27 ![]() ![]() 28 ![]() 29 ![]() ![]() 30 ![]() 31 ![]() ![]() 32 ![]() 33 ![]() 34 ![]() 35 ![]() 36 ![]()
這個(gè)示例很簡單,就是通過之前做測試的Action方法,使用XMLHttpRequest直接發(fā)起請求,將頁面文本框里輸入的字符傳遞到ASP.NET MVC的Action,然后將回傳的結(jié)果顯示在頁面上的一個(gè)div里。 Html的代碼如下: 1 <input type="text" id="txt" /><br />
2 <input type="button" value="Ajax Request" onclick="AjaxRequest();" /> 3 <hr /> 4 <div id="result"></div> 上面介紹了使用XMLHttpRequest對象來完成AJAX應(yīng)用,下面我們來看看怎么在ASP.NET MVC中使用Microsoft AJAX Library.首先建立一新的ASP.NET MVC頁面MsAjaxLibrary.aspx,并在控制器里加入相應(yīng)的Action方法: 1
![]() 2 ![]() ![]() 3 ![]() 4 ![]() OK,現(xiàn)在我們需要將Microsoft AJAX Library引入頁面: 1
![]() 2 ![]() 3 ![]() 4 ![]() 有了上面的準(zhǔn)備,下面就可以編寫客戶端JavaScript來進(jìn)行AJAX請求了,這里我們將使用Microsoft AJAX Library的Sys.Net.WebRequest類來完成AJAX調(diào)用.AJAX服務(wù)端將繼續(xù)使用本文之前的Action方法(AjaxServer)做為服務(wù)器來進(jìn)行請求調(diào)用。完整的JS代碼如下: 1
![]() 2 ![]() 3 ![]() ![]() 4 ![]() 5 ![]() 6 ![]() 7 ![]() 8 ![]() 9 ![]() 10 ![]() 11 ![]() 12 ![]() 13 ![]() 14 ![]() 15 ![]() 16 ![]() ![]() 17 ![]() 18 ![]() 19 ![]() ![]() 20 ![]() 21 ![]() 22 ![]() 23 ![]() 24 ![]() ![]() 25 ![]() 26 ![]() ![]() 27 ![]() 28 ![]() 29 ![]() 30 ![]() ![]() 31 ![]() 32 ![]() 33 ![]() 34 ![]() 35 ![]()
OK,現(xiàn)在我們在客戶端通過一個(gè)按扭來執(zhí)行請求,并將響應(yīng)的結(jié)果放置在一個(gè)叫result的div容器里。 1
![]() 2 ![]() 3 ![]() 4 ![]() 程序運(yùn)行結(jié)果如下: 本文示例代碼下載:點(diǎn)擊這里下載 在ASP.NET MVC中使用ASP.NET AJAX異步訪問WebService 注:原創(chuàng)文章歡迎轉(zhuǎn)載,未經(jīng)允許請注明出處 出處:http://beniao.cnblogs.com 或http://www.cnblogs.com/ 作者:Beniao |
|