知识大全 ASP.NET实现页面间值传递的几种方法介绍

Posted

篇首语:生活可以五颜六色,但绝不能乱七八糟。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ASP.NET实现页面间值传递的几种方法介绍相关的知识,希望对你有一定的参考价值。

ASP.NET实现页面间值传递的几种方法介绍  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  第一种方法

  通过URL链接地址传递  send aspx:  protected void Button _Click(object sender EventArgs e)            Request Redirect( Default aspx?username=honge );    receive aspx: string username = Request QueryString[ username ];这样可以得到参数值

  第二种方法

  通过post方式  send aspx

  

receive aspxstring username = Ruquest Form[ receive ];

  第三种方法

  通过session  send aspx:  protected void Button _Click(object sender EventArgs e)            Session[ username ] = honge ;        Request Redirect( Default aspx );    receive aspx: string username = Session[ username ];这样可以得到参数值

  第四种方法

  通过Application  send aspx:  protected void Button _Click(object sender EventArgs e)            Application[ username ] = honge ;        Request Redirect( Default aspx );    receive aspx: string username = Application[ username ];这样可以得到参数值

  第五种方法

  通过Server Transfer send aspx:  public string Name            get             return honge ;                protected void Button _Click(object sender EventArgs e)            Server Transfer( Default aspx );    receive aspx:   send d = Context Handler as send ;        if (d != null)                    Response Write(d Name);这样可以得到参数值        

  如果在 中还可以这样用 通过PreviousPage

  PreviousPage d = Context Handler as PreviousPage ;  if (d != null)     Response Write(d Name);这样可以得到参数值   

  也可以这样用  send aspx:receive aspx:<%@ PreviousPageType VirtualPath="~/Default.aspx" %>string name = PreviousPage Name;这样可以得到参数值

  如果你的页面中用到了MasterPage的话 Server Transfer 传递的 PreviousPage就无效了 不知道这是什么原因 所以在用到MasterPage的话 最好用Session或是Context Items[ username ]来实现

  使用QueryString

  使用QuerySting在页面间传递值已经是一种很老的机制了 这种方法的主要优点是实现起来非常简单 然而它的缺点是传递的值是会显示在浏览器的地址栏上的(不安全) 同时又不能传递对象 但是在传递的值少而安全性要求不高的情况下 这个方法还是一个不错的方案 使用这种方法的步骤如下:   使用控件创建web表单(form)   创建可以返回表单的按钮和链接按钮   在按钮或链接按钮的单击事件里创建一个保存URL的字符变量   在保存的URL里添加QueryString参数   使用Response Redirect重定向到上面保存的URL

  下面的代码片断演示了如何实现这个方法

  源页面代码

    private void Button _Click  (object sender System EventArgs e)     string url;   url= anotherwebform aspx?name= + TextBox Text + &email= + TextBox Text;   Response Redirect(url);  

  目标页面代码

    private void Page_Load  (object sender System EventArgs e)     Label Text=Request QueryString[ name ];   Label Text=Request QueryString[ email ];  

  使用Session变量

  使用Session变量是可以在页面间传递值的的另一种方式 在本例中我们把控件中的值存在Session变量中 然后在另一个页面中使用它 以不同页面间实现值传递的目的 但是 需要注意的是在Session变量存储过多的数据会消耗比较多的服务器资源 在使用session时应该慎重 当然了 我们也应该使用一些清理动作来去除一些不需要的session来降低资源的无谓消耗 使用Session变量传递值的一般步骤如下    在页面里添加必要的控件   创建可以返回表单的按钮和链接按钮   在按钮或链接按钮的单击事件里 把控件的值添加到session变量里   使用Response Redirect方法重定向到另一个页面   在另一个页面提取session的值 在确定不需要使用该session时 要显式清除它

  下面的代码片断演示了如何实现这个方法

  源页面代码

    private void Button _Click  (object sender System EventArgs e)     file://textbox and textbox are webform   file://controls   Session[ name ]=TextBox Text;   Session[ email ]=TextBox Text;   Server Transfer( anotherwebform aspx );  

  目标页面代码

   private void Page_Load  (object sender System EventArgs e)     Label Text=Session[ name ] ToString();   Label Text=Session[ email ] ToString();   Session Remove( name );   Session Remove( email );  

  使用Server Transfer    这个方法相比上面介绍的方法稍微复杂一点 但在页面间值传递中却是特别有用的 使用该方法你可以在另一个页面以对象属性的方式来存取显露的值 当然了 使用这种方法 你需要额外写一些代码以创建一些属性以便可以在另一个页面访问它 但是 这个方式带来的好处也是显而易见的 总体来说 使用这种方法是简洁的同时又是面向对象的 使用这种方法的整个过程如下    在页面里添加必要的控件   创建返回值的Get属性过程   创建可以返回表单的按钮和链接按钮   在按钮单击事件处理程序中调用Server Transfer方法转移到指定的页面   在第二个页面中 我们就可以使用Context Handler属性来获得前一个页面实例对象的引用 通过它 就可以使用存取前一个页面的控件的值了

  以下代码综合实现上述步骤过程的代码

  源页面代码:

  把以下的代码添加到页面中

   public string Name     get     return TextBox Text;       public string EMail     get      return TextBox Text;     

    然后调用Server Transfer方法  private void Button _Click  (object sender System EventArgs e)     Server Transfer( anotherwebform aspx );      目标页面代码  private void Page_Load  (object sender System EventArgs e)     file://create instance of source web form   WebForm wf ;   file://get reference to current handler instance   wf =(WebForm )Context Handler;   Label Text=wf Name;   Label Text=wf EMail;  

  总结

cha138/Article/program/net/201311/11440

相关参考

知识大全 ASP.NET的几种页面传值方法

ASP.NET的几种页面传值方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用QueryS

知识大全 Asp.net 页面导航的几种方法与比较

Asp.net页面导航的几种方法与比较  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!在ASPNET

知识大全 ASP.NET中页面传值的几种方法

ASP.NET中页面传值的几种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!表单提交 

知识大全 ASP.NET页面间的传值的几种方法[1]

ASP.NET页面间的传值的几种方法[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASP

知识大全 ASP.NET页面间的传值的几种方法

ASP.NET页面间的传值的几种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ASPNET

知识大全 ASP.NET实现页面传值的几种方法[1]

ASP.NET实现页面传值的几种方法[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  第一种

知识大全 ASP.NET实现页面传值的几种方法[3]

ASP.NET实现页面传值的几种方法[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  下面的

知识大全 ASP.NET实现页面传值的几种方法[2]

ASP.NET实现页面传值的几种方法[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  第五种

知识大全 ASP.NET实现页面传值的几种方法[4]

ASP.NET实现页面传值的几种方法[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  使用S

知识大全 ASP.NET页面间的传值的几种方法[2]

ASP.NET页面间的传值的几种方法[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!