2007年11月8日 星期四

ASP.NET AJAX中的非同步PageMethod呼叫

上回我們介紹過了ASP.NET AJAX當中的非同步Web Services呼叫,但是用過ASP.NET 2.0當中的新功能Call Back的朋友們可能會覺得麻煩,還要多建立一個Web Sevices(.asmx)頁面,如果您嫌額外建立一個.asmx的Web Services頁面太過麻煩,還有一種更簡易的方式可以進行非同步的呼叫,我們稱之為Page Method。

您可以建立一個.aspx頁面,並一樣佈置ScriptManager、TextBox與Html Button:


接著我們鍵入底下的程式碼:




接著,請測試執行的結果,您會發現一樣可以透過非同步的方式呼叫(按下Button之後不換頁就可以利用伺服器端的資訊更新TextBox內容),但是不需要額外建立了一個.asmx檔案,在程式的結構上稍為清爽一點了。這就是PageMethod的使用方式,請注意其中務必將.aspx中的PageMethod宣告為靜態方法(加上shared關鍵字),並且加上底下的Attribute(第1-2行):



同時間在.aspx頁面上的ScriptManager控制項,一定要將其EnablePageMethods屬性設為true,才可正確使用PageMethod。
資料來源:節錄自筆者『ASP.NET AJAX應用剖析立即上手』一書

沒有留言: