日期:2014-05-17  浏览次数:21131 次

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"];

??? }

<!--StartFragment -->?

第二种:通过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;


??? }
}