[ASP.NET] 同一網站的參數傳遞

[ASP.NET] 同一網站的參數傳遞

同一個網站不同網頁的值可以用

1.來源網站的屬性

1-1.在目的地網頁用PreviousPageType指示詞來指定來源頁

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

1-2.在目的地頁使用PreviousPage方法來取得值

protected void Page_Load(object sender, EventArgs e)
{
    Response.Write(PreviousPage.myText);
}
1-3.在來源頁定義以下屬性
public string myText
{
    get { return TextBox1.Text; }
}
1-4.在來源頁增加一個按鈕,定義PostBackUrl為目的地頁

如此一來目的頁便可取得來源頁的屬性

2.來源網站的控制項

2-1.在來源頁增加一個按鈕,定義PostBackUrl為目的地頁

2-2.此法比上一個方法更為簡單,只要利用PreviousPage.FindControl方法來取得來源頁的控制項ID

    protected void Page_Load(object sender, EventArgs e)
    {
        TextBox tb = ((TextBox)PreviousPage.FindControl("TextBox1"));
        Response.Write(tb.Text);
    }

3.來源網站的Form

3-1.在來源頁增加一個按鈕,定義PostBackUrl為目的地頁

3-2.同樣是利用控制項的功能,不過這次是利用Form

protected void Page_Load(object sender, EventArgs e)
{
    Response.Write(Request.Form["TextBox2"]);
}

4.尋問字串QueryString

利用QueryString直接傳遞

4-1.在來源頁

protected void Button4_Click(object sender, EventArgs e)
{
    Response.Redirect("~/Target4.aspx?myText=" + TextBox4.Text);
}
4-2.在來源頁定義以下屬性
public string myText
{
    get { return TextBox4.Text; }
}

4-3.在目的頁利用Request.QueryString屬性來讀取

protected void Page_Load(object sender, EventArgs e)
{
    Response.Write(Request.QueryString["myText"]);
}

PS.

上述方法僅適用跨網頁的PostBack或是伺服器從新導向

來源網頁與目的地網頁必須要在同一個網站內

 

範例下載:ASP.NET 同一網站的參數傳遞.rar

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo