CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

.net如何实现页面间的参数传递

楼主xiezhi(园园是我宝宝)2004-08-01 21:29:06 在 .NET技术 / ASP.NET 提问

以前asp可以使用form表单进行post,或者用url   +参数的方法将数据传递到下一个页面,而接收数据可以用相应的   request.form()和request.querystring     ,现今转到.net开发了,到没看到一本书有这方面的介绍,没有一段原码带这方面的内容,一般都是是用   runat   server   的form表单,数据有相应的.cs文件进行处理实在是不习惯,如果要出现页面的跳转并传递一定的参数呢?   郁闷!望高人指点我跨这个门槛! 问题点数:100、回复次数:16Top

1 楼devfan(小星)回复于 2004-08-01 21:32:35 得分 60

使用QueryString  
  使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在浏览器的地址栏上的(不安全),同时又不能传递对象,但是在传递的值少而安全性要求不高的情况下,这个方法还是一个不错的方案。使用这种方法的步骤如下:  
  1,使用控件创建web表单(form)  
  2,创建可以返回表单的按钮和链接按钮  
  3,在按钮或链接按钮的单击事件里创建一个保存URL的字符变量  
  4,在保存的URL里添加QueryString参数  
  5,使用Response.Redirect重定向到上面保存的URL  
  下面的代码片断演示了如何实现这个方法:  
  源页面代码:  
  private   void   Button1_Click  
  (object   sender,   System.EventArgs   e)  
  {  
  string   url;  
  url="anotherwebform.aspx?name="   +   TextBox1.Text   +   "&email="   +   TextBox2.Text;  
  Response.Redirect(url);  
  }  
  目标页面代码:  
  private   void   Page_Load  
  (object   sender,   System.EventArgs   e)  
  {  
  Label1.Text=Request.QueryString["name"];  
  Label2.Text=Request.QueryString["email"];  
  }  
   
  使用Session变量  
  使用Session变量是可以在页面间传递值的的另一种方式,在本例中我们把控件中的值存在Session变量中,然后在另一个页面中使用它,以不同页面间实现值传递的目的。但是,需要注意的是在Session变量存储过多的数据会消耗比较多的服务器资源,在使用session时应该慎重,当然了,我们也应该使用一些清理动作来去除一些不需要的session来降低资源的无谓消耗。使用Session变量传递值的一般步骤如下:  
  1,在页面里添加必要的控件  
  2,创建可以返回表单的按钮和链接按钮  
  3,在按钮或链接按钮的单击事件里,把控件的值添加到session变量里  
  4,使用Response.Redirect方法重定向到另一个页面  
  5,在另一个页面提取session的值,在确定不需要使用该session时,要显式清除它  
  下面的代码片断演示了如何实现这个方法:  
  源页面代码:  
  private   void   Button1_Click  
  (object   sender,   System.EventArgs   e)  
  {  
  //textbox1   and   textbox2   are   webform  
  //controls  
  Session["name"]=TextBox1.Text;  
  Session["email"]=TextBox2.Text;  
  Server.Transfer("anotherwebform.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");  
  }  
   
  使用Server.Transfer  
  这个方法相比上面介绍的方法稍微复杂一点,但在页面间值传递中却是特别有用的,使用该方法你可以在另一个页面以对象属性的方式来存取显露的值,当然了,使用这种方法,你需要额外写一些代码以创建一些属性以便可以在另一个页面访问它,但是,这个方式带来的好处也是显而易见的。总体来说,使用这种方法是简洁的同时又是面向对象的。使用这种方法的整个过程如下:  
  1,在页面里添加必要的控件  
  2,创建返回值的Get属性过程  
  3,创建可以返回表单的按钮和链接按钮  
  4,在按钮单击事件处理程序中调用Server.Transfer方法转移到指定的页面  
  5,在第二个页面中,我们就可以使用Context.Handler属性来获得前一个页面实例对象的引用,通过它,就可以使用存取前一个页面的控件的值了  
  以下代码综合实现上述步骤过程的代码:  
  源页面代码:  
  把以下的代码添加到页面中  
  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;  
  }  
  Top

2 楼myxs(【acy_scdy】)回复于 2004-08-01 21:32:52 得分 5

.NET中也可以用ASP里的东西。request.querystring等或是SessionTop

3 楼sz80(虫子)回复于 2004-08-01 21:40:29 得分 5

同ASP一样  
  Top

4 楼jierry007(风起云涌)回复于 2004-08-01 21:48:39 得分 5

HttpRequest.Params  
  获取   QueryString、Form、ServerVariables   和   Cookies   项的组合集合。Top

5 楼huangsuipeng(hsp|I love foxpig)回复于 2004-08-01 21:49:48 得分 5

一楼基本讲了ASP。NET   1。X的解决方案  
  ASP。NET   2。0启用了跨页面传送功能Top

6 楼Proyang(小过)回复于 2004-08-01 21:52:53 得分 5

通过URL传递。  
  还有SESSION,APPLICATION,COOKIE。Top

7 楼codeangel(http://www.wSoft.Net)回复于 2004-08-02 08:15:54 得分 0

都讲完了,我讲什么?Top

8 楼sicainiao(死菜鸟乐乐)回复于 2004-08-02 08:21:33 得分 0

确实,该说的都给说完了。。。  
  现在我看就只差没有更详细的例子了。。。Top

9 楼goody9807(http://goody9807.cnblogs.com)回复于 2004-08-02 08:29:43 得分 0

讲完了Top

10 楼BillTuan()回复于 2004-08-02 08:33:16 得分 5

querystring   和session  
   
  Top

11 楼wnlovezxm(大垃圾人)回复于 2004-08-02 08:59:18 得分 0

路过!Top

12 楼guying999(求知)回复于 2004-08-02 09:04:03 得分 5

和ASP类似,也可以用链接URL+参数然后使用Request接受,还有可以通过Server,Session等Top

13 楼pinglv(Amanda)回复于 2004-08-02 09:06:35 得分 0

用Session挺方便的啊。Top

14 楼hertcloud(·£孙子兵法£·)回复于 2004-08-02 09:07:47 得分 5

huangsuipeng(hsp-ec.net)      
   
  ASP。NET   2。0启用了跨页面传送功能  
   
  讲下这个   或给个连接啊!  
       
     
  Top

15 楼tailer88(水)回复于 2004-08-02 09:12:14 得分 0

.net可以通过多种方法来实现页面参数传递,其中也包括ASP的方法~Top

16 楼pgwron(情伤无痕)回复于 2004-08-02 09:36:49 得分 0

建议采用   devfan(小星)   的第一种方法,比较适合ASP的老手Top

相关问题

  • 页面间传递参数
  • 页面链接的参数传递?
  • 页面间参数传递问题?
  • 页面间参数传递的问题:
  • 页面参数传递问题
  • jsp页面传递参数的问题
  • 页面传递多参数问题
  • 【c# webform】页面参数传递
  • 页面间传递参数的问题。
  • 页面间传递参数问题

关键词

  • .net
  • 页面
  • 代码
  • 控件
  • 属性
  • 数据
  • 传递
  • 按钮
  • 变量
  • 表单

得分解答快速导航

  • 帖主:xiezhi
  • devfan
  • myxs
  • sz80
  • jierry007
  • huangsuipeng
  • Proyang
  • BillTuan
  • guying999
  • hertcloud

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo