閱讀52 返回首頁    go 阿裏雲 go 技術社區[雲棲]


跨頁投遞和Transfer的區別

 跨頁投遞和Transfer的區別:

      雖然都是在頁麵間傳遞信息,但是二者也有很大的不同。下麵用實例說明:

關鍵點:

      使用PreviousPage.IsCrossPagePostBack屬性判斷當前請求是不是跨頁投遞。
      使用PreviousPage.FindControl方法可以獲取源頁麵的控件。
      跨頁投遞容易和Transfer混淆,可以用PreviousPage.IsCrossPagePostBack屬性判定。

1.頁麵執行流程:

2.文件結構圖:

3.跨頁投遞頁麵:

注意: PostBackUrl="~/DisplayPage.aspx"用來跨頁麵投遞。

4.Transfer頁麵:

後台代碼:

//TransferTest頁麵;
public partial class TransferTest : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Server.Transfer("DisplayPage.aspx");
    }
}
5.顯示頁麵的後台代碼:

//Default.aspx顯示頁麵;
public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {   
            if (PreviousPage != null)  //是否有投遞頁麵。
            {
                if (PreviousPage.IsCrossPagePostBack
                {
                    Response.Write(((TextBox)PreviousPage.FindControl("TextBox1")).Text + "</br><h3>這是跨頁投遞方法發送的結果</h3>");
                }
                if (!PreviousPage.IsCrossPagePostBack)
                    {
                        Response.Write(Request.Params["TextBox1"] + "</br><h3>這是Transfer方法發送的結果</h3>");
                        //注意:Request.Params["TextBox1"]用來獲取轉向頁麵控件(這裏是TextBox1)的值;
                    }
             }
           //使用PreviousPage.IsCrossPagePostBack屬性判斷當前請求是不是跨頁投遞。
           //使用PreviousPage.FindControl方法可以獲取源頁麵的控件。
           //跨頁投遞容易和Transfer混淆,可以用PreviousPage.IsCrossPagePostBack屬性判定。
    }
}

最後更新:2017-04-02 04:00:25

  上一篇:go 凱撒加密+Base64--打造安全又高效的加密算法
  下一篇:go Apache HttpComponents Client 4.0快速入門/升級-2.POST方法訪問網頁