[ASP.NET AJAX]如何使用 PageMethods 實現非同步機制(一)-基本介紹

摘要:[ASP.NET AJAX]如何使用 PageMethods 實現非同步機制(一)-基本介紹

本文使用 PageMethods 的方式來實現非同步機制,也就是說使用 JavaScript 呼叫後端程式碼的函式(C#/VB),使其不會刷新網頁,將結果更新於網頁上。

在實作過程中有幾點注意事項:
1. 頁面上加入一個 ScriptManager 或 ToolkitScriptManager 控制項,將 EnablePageMethods 屬性設為 true
2. 方法必需要加上 [System.Web.Services.WebMethod]屬性。
3. 方法必需宣告為靜態方法(static)
4. 使用 PageMethods 物件呼叫伺服端函式。ex:PageMethods.<Server MethodName>(param...,success, fail)
5. PageMethods 預設行為模式為:使用 HTTP POST 命令呼叫,而且回應資訊將序列化為 JSON 傳回。

 Web 畫面 (使用 html 表單)

後端程式碼(C#)

JavaScript

PageMethods 運作方式
當 ScriptManager 或 ToolkitScriptManager 控制項啟用了 EnablePageMethods="true" 後,會去尋找此頁面是否有標示 [System.Web.Services.WebMethod] 的靜態函式(static method),若有的話會在網頁 Render 時產生 Javascript ,可透過此 JavaScript 與伺服端進行溝通。

可查看網頁原始檔就會發現。