標籤:www. parameter div end asp.net 比較 種類型 項目 指定
ASP.NET跨頁面傳值
這個才可以說是面象對象開發所使用的方法,其使用Server.Transfer方法把流程從當前頁面引導到另一個頁面中,新的頁面使用前一個頁面的應答流,所以這個方法是完全面象對象的,簡潔有效。
Server.Transfer是從當前的ASPX頁面轉到新的ASPX頁面,伺服器端執行新頁並輸出,在新頁面中通過Context.Handler來獲得前一個頁面傳遞的各種資料類型的值、表單資料、QueryString.由於重新導向完全在伺服器端完成,所以客戶
端瀏覽器中的URL地址是不會改變的。調用Server.Transfer時,當前的ASPX頁面終止執行,執行流程轉入另一個ASPX頁面,但新的ASPX頁面仍使用前一ASPX頁面建立的應答流。
比較Server.Transfer和Response.Redirect的區別
1. Server.Transfer在伺服器端完成,所以用戶端瀏覽器中的URL地址是不會改變的;Response.Redirect是用戶端完成,向伺服器端提出新的頁面處理請求,所以用戶端瀏覽器中的URL地址是會改變的。
2. Server.Transfer在伺服器端完成,不需要用戶端提出請求,減少了用戶端對伺服器端提出請求。
3. Server.Transfer只能夠轉跳到本地虛擬目錄指定的頁面,也就是工程項目中的頁面,而Response.Redirect則十分靈活,可以跳轉到任何URL地址。
4. Server.Transfer可以將前一個頁面的各種類型的值傳到新的頁面;Response.Redirect則只能藉助URL中帶參數或是結合上面四種辦法把各種類型的值傳到新的頁面。
優點:
1.直接在伺服器端重新導向,使用簡單方便,減少了用戶端對伺服器端提出請求。
2.可以傳遞各種資料類型的值和控制項的值。
缺點:
1.用戶端瀏覽器中的URL地址是不改變,會導致在新的頁面可能出現一些意想不到的問題。比如如果源頁面和目的頁面不在同一個虛擬目錄或其子目錄下,那麼使用相對路徑的圖片、超連結都會導致錯誤的指向。
使用方法:
1.在源頁面的代碼中,使用Page類的Server.Transfer跳到另一個頁面傳遞頁面資料:Server.Transfer("b.aspx","false")。
2.在目的頁面中,使用Context.Handler來接收資料:FormerPage formerPage = (FormerPage)Context.Handler; 然後用formerPage的屬性和方法來擷取前一個頁面的值,或者直接用Context.Items["myParameter "]
例子:
(1)a.aspx
public string Name { get{ return Label1.Text;} } private void Button1_Click(object sender, System.EventArgs e) { Server.Transfer("b.aspx"); }
(2)b.aspx
private void Page_Load(object sender, EventArgs e) { a newWeb; //執行個體a表單 newWeb = (source)Context.Handler; string name; name = newWeb.Name; }
參考文章:ASP.NET頁面之間傳遞值的幾種方式
ASP.NET跨頁面傳值——Server.Transfer