封裝類是通過在.net的方法上增加AJAX屬性標記來實現的,一旦被標記,AJAX創建客戶端的javascript函數(這類似於客戶端編寫的javascript函數),並使用xmlhttprequest創建服務器代理,這個代理映射客戶端的函數到服務器的處理函數。
複雜嗎?不會的,讓我們看看下面的簡單例子,給出的.net 函數
'VB.Net public function Add(firstNumber as integer, secondNumber as integer) as integer return firstNumber + secondNumber end sub |
//C# public int Add(int firstNumber, int secondNumber) { return firstNumber + secondNumber; } |
Ajax.net會立即自動的創建帶有兩個參數、名字爲Add的javascript函數,當客戶端調用這個javascript函數時,請求將從後臺送到服務器端並從將計算結果返回給客戶端。
初始安裝
我們首先從如何把”.dll”安裝到你的項目開始,當然,如果你瞭解如何使用,這一節可以跳過。
如果你還沒有Ajax.dll,可以首先下載AJAX的最新版本。解壓文件放到可以被你的項目引用的地方,在.net項目中,添加上對其的引用,然後就可以開始使用ajax.dll封裝進行開發了。
如果你在安裝引用時遇到了麻煩,可以參考這個鏈接的說明: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbtskaddingremovingreferences.asp |
設置HttpHandle
爲了使其可以工作,第一步必須做的是在web.config中安裝設置封裝包的HttpHandle,不去詳細解釋HttpHandle是如何工作的,我們只需要瞭解他們可以用來處理asp.net請求。例如,所有的目的爲*.aspx的請求可以通過System.Web.UI.PageHandlerFactory類發送到控制句柄,簡單的說,我們把任何向ajax/*.ashx的請求發送到Ajax.PageHandlerFactory的請求處理句柄:
<configuration> <system.web> <httpHandlers> <add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" /> </httpHandlers> ... <system.web> </configuration> |
上面的代碼告訴asp.net把任何匹配到特定的路徑(ajax/*.ashx)請求發送到Ajax.PageHandlerFactory產生的HttpHandle,而不再是默認的Handler factory。你不需要創建ajax子目錄,這是一個只用來臨時使用的虛擬的目錄,因此別的HttpHandler可以用他們自己的目錄來使用.ashx擴展名的文件。
配置頁面
現在我們準備好開始代碼編寫了。打開一個新的網頁或者已經存在的頁面,在其codebehind文件中的Page_Load事件中增加以下代碼:
'vb.net Public Class Index Inherits System.Web.UI.Page Private Sub Page_Load(sender As Object, e As EventArgs) Handles MyBase.Load Ajax.Utility.RegisterTypeForAjax(GetType(Index)) '... end sub '... End Class |