2013年12月25日 星期三

[ASP.NET C#] ASP.NET頁面之間傳遞參數的幾種方法

Reference:http://www.wretch.cc/blog/anny90556/32424827

第一種方法:通過URL連結地址傳遞
send.aspx:
  protected void Button1_Click(object sender, EventArgs e)
    {
        Request.Redirect("Default2.aspx?username=honge");
    }
receive.aspx:
string username = Request.QueryString["username"];這樣可以得到參數值。 


第二種方法:通過post方式。
send.aspx
<form id="form1" runat="server" action="receive.aspx" method=post>
    <div>
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
<asp:TextBox ID="username" runat="server"></asp:TextBox>
</div>
    </form>
receive.aspx
string username = Ruquest.Form["receive"];

第三種方法:通過session
send.aspx:
  protected void Button1_Click(object sender, EventArgs e)
    {
        Session["username"] = "honge";
        Request.Redirect("Default2.aspx");
    }
receive.aspx:
string username = Session["username"];這樣可以得到參數值。

第四種方法:通過Application
send.aspx:
  protected void Button1_Click(object sender, EventArgs e)
    {
        Application["username"] = "honge";
        Request.Redirect("Default2.aspx");
    }
receive.aspx:
string username = Application["username"];這樣可以得到參數值。

第五種方法:通過Server.Transfer
send.aspx:
  public string Name
    {
        get {
            return "honge";
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Server.Transfer("Default2.aspx");
    }
receive.aspx:
   send d = Context.Handler as send ;
        if (d != null)
        {
            Response.Write(d.Name);這樣可以得到參數值。
        }

如果在asp.net 2.0中還可以這樣用:通過PreviousPage

PreviousPage d = Context.Handler as PreviousPage ;
if (d != null)
        {
            Response.Write(d.Name);這樣可以得到參數值。
        }
也可以這樣用:
send.aspx:
<asp:Button ID="btnSubmit" runat="server" PostBackUrl="~/reveive.aspx" Text="Submit" />
receive.aspx:
<%@ PreviousPageType VirtualPath="~/Default.aspx" %>
string name = PreviousPage.Name;這樣可以得到參數值。

沒有留言:

張貼留言