asp.net 页面传值方法例子总结

一.Session

Session 变量存储在服务器端 ,缺点:asp.net中有失效的隐患,有效期:用户活动时间+自定义延迟,适用范围:单个用户、整个站点所有页面。

example:

在webform1.aspx中

private void Button1_Click(object sender,System.EventArgs e)

{

     Session["name"] = TextBox1.Text;

     Session["email"] = TextBox2.Text;

     Response.Redirect("webform2.aspx");

}

在webform2.aspx中

private void Page_Load(object sender,System.EventArgs e)

{

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

       Label2.Text - Session["email"].ToString();

       Session.Remove("name");

       Session.Remove("email");

}运行,即可看到传递后的结果了

二Cookie

Cookie是存放在客户端的 。而且Cookie的使用要配合ASP.NET内置对象Request来使用,每次输入网址请求页面是,服务器站点都会把Cookie

下载到客户端,下一次再访问该站点的时候,客户端会一起把网址和本地的相应Cookie一起上传的服务器端。

Webform1.aspx 中

private void Button1.Click(object sender,System.EventArgs e)

{

    HttpCookie cookie_name = new HttpCookie("name");

    cookie_name.Value = Label1.Text;

    Reponse.cookie.add(cookie_name);

    Server.Transfer("Webform2.aspx");

}

在Webform2.aspx中

private void Page_Load(object sendet,EventArgs e)

{

      string name;

      name = Request.Cookie["name"].Value.ToString();

}

三.

使用QueryString变量

  QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子:

  a.aspx的C#代码

  private void Button1_Click(object sender, System.EventArgs e)

  {

  string s_url;

  s_url = "b.aspx?name=" + Label1.Text;

  Response.Redirect(s_url);

  }

  b.aspx中C#代码

  private void Page_Load(object sender, EventArgs e)

  {

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

  }

四.

使用Application 对象变量

  Application对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。

  a.aspx的C#代码

  private void Button1_Click(object sender, System.EventArgs e)

  {

  Application["name"] = Label1.Text;

  Server.Transfer("b.aspx");

  }

  b.aspx中C#代码

  private void Page_Load(object sender, EventArgs e)

  {

  string name;

  Application.Lock();

  name = Application["name"].ToString();

  Application.UnLock();

  }

五.Server.Transfer

Response是叫浏览器去重新转向到指定的网页,而Server自然是发生在服务器端为主了,Server.Transfer跳到别的页面后,浏览器显示的地址不会改变,有时反而会造成误会,当然也有些场合需要这样的效果。Response.Redirect()需要在服务器和客户端往返两次,而Server.Transfer()在服务器端一次通信即可 

   public string Name
{
 get
 {
 return TextBox1.Text;
 }
}

public string EMail
{
 get
 {
 return TextBox2.Text;
 }
}
  然后调用Server.Transfer方法
private void Button1_Click
(object sender, System.EventArgs e)
{
 Server.Transfer("anotherwebform.aspx");
}

private void Page_Load
(object sender, System.EventArgs e)
{
 //create instance of source web form
 WebForm1 wf1;
 //get reference to current handler instance
 wf1=(WebForm1)Context.Handler;
 Label1.Text=wf1.Name;
 Label2.Text=wf1.EMail;
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值