ASP.NET中Session的用法之二:进行页面传值

 

在页面之间传递信息有许多方式:

第一:可以使用QueryString

第二:可以使用Session

第三:Server.Transfer

这三种传值方式都有利有弊,下面我以我的经验给大家讲解一下

首先:QueryString

QueryString是一种非常简单的传值方式,其缺点就是会把要传递的值显示在浏览器的地址栏中,并且此方法不能够传递对象。如果你想传递一个安全性不是那么重要或者是一个简单的数值时。使用此方式最好不过。

下面通过一个小例子来说明一下

1.创建一个Web页面,叫SendMessage.aspx

2.在页面内添加两个TextBox,叫TxtNameTxtEmail,与一个Button,叫Submit

   protected void Submit_Click(object sender, EventArgs e)

   {

      String Url = "ReceiveMessage.aspx?Name=" +

      TxtName.Text + "&Email=" + TxtEmail.Text;

      Response.Redirect(Url);

   }

3.再创建一个接收信息页面,叫ReceiveMessage.aspx

4.在页面内添加两个Label,叫LbNameLbEmail

   protected void Page_Load(object sender, EventArgs e)

   {//使用Request来接收由上个页面传递过来的值,分别显示在页面上

      LbName.Text = Request.QueryString["Name"];

      LbEmail.Text = Request.QueryString["Email"];

   }

再次:使用Session变量

使用Session变量传值是一种最常见的方式了,此种方式不仅可以把值传递到下一个页面,还可以交叉传递到多个页面,直至把Session变量的值Remove后,才消失

下面举例说明

1.创建一个页面,叫SendSession

2.在页面内添加两个TextBox,叫TxtNameTxtEmail,添加一个Button,叫Submit

   protected void Submit_Click(object sender, EventArgs e)

   {//可以使用SessionAdd方法

      Session["Name"] = TxtName.Text;

      //可以使用Session.Add("Name",TxtName.Text);

      Session["Email"] = TxtEmail.Text;

      //可以使用Session.Add("Email",TxtEmail.Text);

      Response.Redirect("ReceiveMessage.aspx");

   }

3.再创建一个页面,叫ReceiveMessage.aspx

4.在页面内添加两个Label,叫LbNameLbEmail

   protected void Page_Load(object sender, EventArgs e)

   {

      LbName.Text = Session["Name"].ToString();

      LbEmail.Text = Session["Email"].ToString();

      Session["Name"].Remove();

      Session["Email"].Remove();

      //使用结束要清除Session中的值

   }

这是使用Session传递数值,此方式耗费服务器的资源,尽量少使用

再次:使用Server.Transfer

这种传递方式有点复杂,但也可以是一种值传递方式

下面举例说明一下:

1.创建一个页面,叫SendMessage.aspx

2.在页面内添加两个TextBox,叫TxtNameTxtEmail,添加一个Button,叫Submit

   protected void Submit_Click(object sender, EventArgs e)

   {

      Server.Transfer("ReceiveMessage.aspx");

   }

再添加一个属性

   public String Name

   {

      Get

      {

         return TxtName.Text;

      }

   }

   public String Email

   {

      Get

      {

         return TxtEmail.Text;

      }

   }

3.再创建一个页面,叫ReceiveMessage.aspx

4.在页面放两个Label,叫LbNameLbEmail

   protected void Page_Load(object sender, EventArgs e)

   {

      //创建原始窗体的实例SendMessage wf1

      //获得实例化的句柄

       wf1=(SendMessage)Context.Handler;
      Label1.Text=wf1.Name;
      Label2.Text=wf1.EMail;

   }

此方式没有经过本人的上机检验,如有错误请大家指出

 

 

你可能感兴趣的:(session,object,asp.net,email,button,textbox)