程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET WebForm也玩強類型URL調用之一:PageMethods簡介

ASP.NET WebForm也玩強類型URL調用之一:PageMethods簡介

編輯:關於ASP.NET

利用URL調用頁面的缺點

在簡單的ASP.NET或HTML頁面中鏈接一個頁面是很簡單的,但是要保證鏈接的 頁面確實存在、傳遞的參數都正確無誤並且被正確解析卻有一點不同了。下在讓 我們來看一個簡單的例子,你想要訪問一個顯示客戶信息的頁面,這個頁面需要 名叫CustomerID的整形參數,所以你一般會以 "http://myserver/Customer.aspx?CustID=12"的URL來訪問, 這初看起來沒有問 題,但如果這個頁面不是你創建的,你怎麼知道參數的名字?你又怎麼知道參數 的類型?為了得到參數的名字和類型你不得不去看代碼(但你能保證代碼是隨時 可得到的嗎?)或是看文檔(文檔確實存在嗎?即使存在又是不是最新的呢?你 確定開發者在將參數名從CustID改為CustomerID後更新了文檔嗎?)。

上面說的是通過URL重定向到一個頁面時的限制,下面讓我們來看看這種方式 的其它限制:

你只能通過文件名引用一個頁面,所以就沒有編譯時檢查,你的錯誤只有在訪 問網頁時才能被發現,這意味著你不能保證你交付的代碼是100%正確的,當你意 識到你犯了錯誤時已經晚了,你不得不在修正了錯誤後重新部署程序。

你不能確切的知道一個頁面的參數或其參數集合。

你必須知道每個參數的確切的名字。

你必須以字符串的方式傳遞參數,這雖然可以工作但可讀性卻不好。

你不得不手工解析參數(在ASP.NET中通過URL傳遞的參數可以在 Request.QueryString中以字符串的形式得到)。

頁面必須驗證接收到的參數(比如驗證參數是否為空、參數類型是否正確、參 數值是否在有效的范圍內)。

PageMethods提供的解決方案

既然通過URL來調用頁面有這麼多的缺點,那有沒有一種比較好的方式呢?下 面就讓我們來看看本文的主角 PageMethods,PageMethods為每個頁面定義了結構 化的URL,所以我們可以通過一個簡潔的方式調用頁面。PageMethods基於嚴格的 頁面輸入和參數綁定說明,在PageMethods中每個頁面暴露出一些方法集合,以便 我們按照不同的目的調用頁面。

應用PageMethods也比較簡單,你只需要在頁面中添加方法,然後在需要公布 的方法上添加PageMethods提供的屬性,下面讓我們來看一個示例,我們在 Customer頁面中定義了如下方法,然後在每個方法上添加了PageMethods屬性,這 些這些方法就可以被 PageMethods類庫調用了,怎麼樣,很簡單吧。

(Customer頁面的代碼)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved