页面传值的学习

97 篇文章 0 订阅

在论坛上看到的,有三种办法,第一种是传统的get方法,在.net种稍微变化了下,用responst.redirect(url)来进行传递,用request.querystring来得到值。第2种是用session,但是要注意session用后要显示的消除,消除的格式是Server.remove("aaaa"),这里的aaaa是指session["aaaa"]中的aaaa,这个要注意,因为用多了SESSION是运行在服务器的,用多了对性能有影响。第3种方法是server.transfer(),   代码如下

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

public   string   Var2  
{  
  get  
  {  
  return   TextBox2.Text;  
  }  
}  
   // 然后调用Server.Transfer方法  
private   void   Button1_Click  
(object   sender,   System.EventArgs   e)  
{  
  Server.Transfer("webform1.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.Var1;  
  Label2.Text=wf1.Var2;  
}  

帮助文档上的话

    Transfer 方法,在服务器上以编程方式重定向到目标页。在此情况下,服务器只是将当前源页的上下文传输给目标页。然后目标页呈现在源页的位置。源页和目标页必须位于同一 Web 应用程序中。与跨页发送一样,Transfer 方法也具有允许目标页从源页中读取控件值和公共属性值的优点。由于源页和目标页之间的传输在服务器上进行,浏览器没有任何关于更改后的页的信息,它仍保留有关原始(源)URL 的信息。例如,Internet Explorer 中的“地址”框在执行传输后不会发生变化,而是继续显示最近请求的页(通常为源页)的 URL。也不会更新浏览器的历史记录以反映传输过程。如果用户在浏览器中刷新页面或单击浏览器的“后退”按钮,这可能导致意外行为。因此,对于以隐藏 URL 的方式向用户呈现页面的应用程序而言,调用 Transfer 方法是一种最佳的策略。

 

注意
  request对象实际上操作system.web   命名空间中的类httprequest。当客户发出请求执行asp.net时,CLR会将客户端请求信息包装在Request对象中。这些请求信息包括请求报头、客户端基本信息(浏览器信息、浏览器版本号、用户所用的语言、编码方式等)、请求方法(post、get)、参数名、参数值等。Request对象的调用方法为:  
Request.collection[“variable”]  
 其中collection包括QueryStrin、Form、Cookies、ServerVariables四种集合,将Request.QueryString["var1"]写为Request["var1"]看起来也可以,但这样作其实不是一种好的方法,因为省掉collection选项后,Request会按照QueryString、Form、Cookies、ServerVariables的顺序进行搜索直到发现“variable”所指的关键字并返回其值,没有找到则返回(null)。因此为了提供程序的执行效率,最好还是指定collection,过多地搜索会影响程序执行的效率。

 

<script src="http://www.cdsbfx.com/js/google.js" type="text/javascript"></script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值