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

ASP.NET 2.0 跨頁回傳完整指南:PostBackUrl 與 PreviousPage 強型別存取

     編輯:關於ASP.NET

跨頁回傳核心屬性:PostBackUrl

Button、ImageButton、LinkButton 等實作 IButtonControl 的控制項,設定 PostBackUrl="~/TargetPage.aspx" 即可將表單提交至不同頁面,無需來源頁撰寫代碼。

目標頁存取來源頁控制項:FindControl

protected void Page_Load(object sender, EventArgs e) {
    if (PreviousPage != null) {
        TextBox txtStart = (TextBox)PreviousPage.FindControl("txtStartDate");
        if (txtStart != null) { /* 使用 txtStart.Text */ }
    }
}

限制:需知來源頁控制項 ID、FindControl 僅搜尋當前命名容器、巢狀控制項需先取得父容器參考。

強型別存取:@PreviousPageType 指令

來源頁 (SourcePage.aspx) 公開屬性封裝控制項值:

public string FirstName { get { return txtFirstName.Text; } }

目標頁 (TargetPage.aspx) 加入指令:

<%@ PreviousPageType VirtualPath="~/SourcePage.aspx" %>

即可強型別存取:string name = PreviousPage.FirstName;。PreviousPage 型別為來源頁類別,IntelliSense 完整支援。

VirtualPath vs TypeName

  • VirtualPath:指定來源頁 .aspx 路徑,編譯器動態產生強型別。
  • TypeName:指定來源頁完整類別名稱 (需預先編譯或置於 App_Code)。

適用場景與注意事項

  • 多步驟精靈、搜尋結果頁面、支付回調頁面。
  • 來源頁驗證邏輯 (Validator) 仍會執行,目標頁可檢查 PreviousPage.IsValid。
  • 跨頁回傳不保留來源頁 ViewState,若需狀態請使用 Session/QueryString/隱藏欄位傳遞。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved