首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET AJAX Page Method 遷移指南:從實例方法到靜態方法的完整轉換策略

     編輯:關於ASP.NET

ASP.NET AJAX 早期(Atlas CTP)支援實例 Page Method,可直接存取頁面控制項(this.TextBox1.Text)。Beta/RC 版移除此功能,強制改為靜態方法,導致大量遷移痛點。本文分析差異並提供轉換方案。

核心差異

特性實例 Page Method靜態 Page Method
存取控制項可透過 this 直接存取無法存取,需由客戶端傳值
傳輸資料量完整 ViewState + 所有表單欄位(相當於完整 PostBack)僅傳遞必要參數,極輕量
效能差,頻寬大、伺服器需重建控制項樹優,接近 Web Service 呼叫
修改控制項回傳無法將伺服器端控制項變更輸出至客戶端同樣無法,需客戶端 JS 更新 UI

遷移範例

舊版(實例):

[WebMethod]
public string GetString(string split)
{
    return this.TextBox1.Text + split + this.TextBox2.Text;
}
// 客戶端
PageMethods.GetString('|', successCallback);

新版(靜態):

[ScriptMethod]
public static string GetString(string split, string text1, string text2)
{
    return text1 + split + text2;
}
// 客戶端
var text1 = $get('<%= TextBox1.ClientID %>').value;
var text2 = $get('<%= TextBox2.ClientID %>').value;
PageMethods.GetString('|', text1, text2, successCallback);

遷移策略

  1. 將所需控制項值改由客戶端 JS 取得並作為參數傳遞。
  2. 若需伺服器端資料(如下拉選單選項),在靜態方法中重新查詢資料來源。
  3. 極少數情況必須存取控制項樹時,可退回使用 UpdatePanel 部分更新,犧牲效能換相容性。

作者強調:幾乎所有案例皆可用「客戶端取值 → 參數傳遞」模式解決,效能提升顯著。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved