您的位置:首页 > 编程语言 > ASP

asp.net中网页间传递参数用什么方法比较

2013-08-02 09:32 543 查看
ASP.NET为我们提供了三种方式,一种是可以通过用QueryString来传送相应的值,再一种是通过session变量来传送相应的值,还有就是通过Server.Transfer方法来实现。下面分别一一介绍:    

   

  一、使用Querystring    

  Querystring是一种非常简单的传值方式,其缺点就是会把要传送的值显示在浏览器的地址栏中,并且在此方法中不能够传递对象。如果你想传递一个安全性不是那么太重要或者是一个简单的数值时,用此方法最好不过了。下面通过一个小例子来完成传值工作,步骤如下:    

  1、创建一个web   form    

  2、在新建的web   form中放置一个button1,在放置两个TextBox1,TextBox2    

  3、为button按钮创建click事件    

  代码如下:    

  private   void   Button1_Click    

  (object   sender,   System.EventArgs   e)    

  {    

  string   url;    

  url="webform2.aspx?name="   +    

  TextBox1.Text   +   "&email="   +    

  TextBox2.Text;    

  Response.Redirect(url);    

  }    

  4、新建一个目标页面命名为webform2    

  5、在webform2中放置两个Label1,Label2    

  在webform2的Page_Load中添加如下代码:    

  private   void   Page_Load    

  (object   sender,   System.EventArgs   e)    

  {    

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

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

  }    

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

   

  二、使用Session变量    

   

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

  1、创建一个web   form    

  2、在新建的web   form中放置一个button1,在放置两个TextBox1,TextBox2    

  3、为button按钮创建click事件    

  代码如下:    

  private   void   Button1_Click    

  (object   sender,   System.EventArgs   e)    

  {    

  Session["name"]=TextBox1.Text;    

  Session["email"]=TextBox2.Text;    

  Response.Redirect("webform2.aspx");    

  }    

  4、新建一个目标页面命名为webform2    

  5、在webform2中放置两个Label1,Label2    

  在webform2的Page_Load中添加如下代码:    

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

  }    

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

   

  三、使用Server.Transfer    

  虽然这种方法有点复杂,但也不失为一种在页面传值的方式。    

  举个例子看看:    

  1、创建一个web   form    

  2、在新建的web   form中放置一个button1,在放置两个TextBox1,TextBox2    

  3、为button按钮创建click事件    

  代码如下:    

  private   void   Button1_Click    

  (object   sender,   System.EventArgs   e)    

  {    

  Server.Transfer("webform2.aspx");    

  }    

  4、创建过程来返回TextBox1,TextBox2控件的值代码如下:    

  public   string   Name    

  {    

  get    

  {    

  return   TextBox1.Text;    

  }    

  }    

   

  public   string   EMail    

  {    

  get    

  {    

  return   TextBox2.Text;    

  }    

  }    

  5、新建一个目标页面命名为webform2    

  6、在webform2中放置两个Label1,Label2    

  在webform2的Page_Load中添加如下代码:    

  private   void   Page_Load    

  (object   sender,   System.EventArgs   e)    

  {    

  //创建原始窗体的实例    

  WebForm1   wf1;    

  //获得实例化的句柄    

  wf1=(WebForm1)Context.Handler;    

  Label1.Text=wf1.Name;    

  Label2.Text=wf1.EMail;    

   

  }    

  运行,即可看到传递后的结果了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  .net