asp.net 网页传参的几种常用方式?

第一种:QueryString

//将源页面start.aspx中的lable 和textbox中的内容传到end.aspx页面中 并在其lable 和textbox中显示传过来的内容

源页面代码:

protected void Button1_Click(object sender, EventArgs e)

{

string url;

url = "end.aspx?name="+Label1.Text+"&home="+TextBox1.Text;

Response.Redirect(url);

}

目标页代码:

protected void Page_Load(object sender, EventArgs e)

{

///通过QueryString传参数

Label1.Text = Request.QueryString["name"];

TextBox1.Text=Request.QueryString["home"];

}

第二种:通过Session传参数

源页面代码:

protected void Button1_Click(object sender, EventArgs e)

{

Session["name"]=Label1.Text;

Session["home"] = TextBox1.Text;

Server.Transfer("end.aspx");

}

目标页代码:

protected void Page_Load(object sender, EventArgs e)

{

//通过Session传参数

Label1.Text=Session["name"].ToString();

TextBox1.Text = Session["home"].ToString();

//应该使用一些清理动作来去除一些不需要的session来降低资源的无谓消耗.

Session.Remove("name");

Session.Remove("home");

}

第三种:使用Server.Transfer传参数

该方法虽然麻烦,但是你可以在另一个页面以对象属性的方式来存取显露的值。

原页面代码:

public partial class start: System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void Button1_Click(object sender, EventArgs e)

{

//使用Server.Transfer方法

Server.Transfer("end.aspx");

}

//此处设定变量name和home的返回值,以便在目标页面中作为属性值显示

public string name

{

get

{

return Label1.Text;

}

}

public string home

{

get

{

return TextBox1.Text;

}

}

}

目标页代码:

public partial class end : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

//此处把目标页面_Default作为一个类,而name和home都为其属性值

start wf1;

wf1 = (start)Context.Handler;

Label1.Text = wf1.name;

TextBox1.Text = wf1.home;

}

}