asp.net WebForm页面间传值方法

 更新时间:2006年09月28日 00:00:00   作者:  

  ASP.NET WEB FORMS 给开发者提供了极好的事件驱动开发模式。然而这种简单的应用程序开发模式却给我们带来了一些小问题,举个例子,在传统的ASP应用程序中,你能够通过POST方法很容易的把一个值或多个值从一个页面传送到另一个页面(request()/request.form()/request.querystring()),用同样的方法在ASP.NET中实现有点麻烦。在这里,通过其他方式来解决这种情形。ASP.NET为我们提供了三种方式,一种是可以通过用QueryString来传送相应的值,再一种是通过session变量来传送相应的值,还有就是通过Server.Transfer方法来实现。

  一、使用Querystring

  Querystring是一种非常简单的传值方式,其缺点就是会把要传送的值显示在浏览器的地址栏中,并且在此方法中不能够传递对象。如果你想传递一个安全性不是那么太重要或者是一个简单的数值时,用此方法最好不过了。下面通过一个小例子来完成传值工作,步骤如下:
1、创建一个web form
2、在新建的web form中放置一个button1,在放置两个TextBox1,TextBox2
3、为button按钮创建click事件
代码如下:
private void button_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 button_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 (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)
{
  //创建webform的实例
  webform1 wf1;
 //获得实例化的句柄
  wf1=(webform1)Context.Handler;
  Label1.Text=wf1.Name;
  Label2.Text=wf1.Email;
}

常见的就是这三种方法。

 

相关文章

  • 如何使用Rotativa在ASP.NET Core MVC中创建PDF详解

    如何使用Rotativa在ASP.NET Core MVC中创建PDF详解

    这篇文章主要给大家介绍了关于如何使用Rotativa在ASP.NET Core MVC中创建PDF的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • .net core如何在网络高并发下提高JSON的处理效率详解

    .net core如何在网络高并发下提高JSON的处理效率详解

    这篇文章主要给大家介绍了关于.net core如何在网络高并发下提高JSON的处理效率的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用.net core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • C#中常用的分页存储过程小结

    C#中常用的分页存储过程小结

    C#中常用的分页存储过程小结,需要利用存储过程分页的朋友可以参考下。
    2010-05-05
  • asp.net Accee数据库连接不稳定解决方案

    asp.net Accee数据库连接不稳定解决方案

    我最最进做了个网站,我是用VS2005 + Access 数据库连接,可以我在连接的时候总是出现连接不稳定的情况,同样的代码,一个字也没改,就是连接不上,但是有的又连接的上。真是郁闷,真是弄死人。
    2009-07-07
  • .NET微服务架构CI/CD自动构建Jenkins+Gitee

    .NET微服务架构CI/CD自动构建Jenkins+Gitee

    这篇文章介绍了.NET使用微服务架构CI/CD自动构建Jenkins+Gitee的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01
  • .NET Core实现简单的Redis Client框架

    .NET Core实现简单的Redis Client框架

    本文详细讲解了.NET Core实现简单的Redis Client框架,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • Global.asax的Application_BeginRequest实现url重写无后缀的代码

    Global.asax的Application_BeginRequest实现url重写无后缀的代码

    本文为大家详细介绍下利用Global.asax的Application_BeginRequest 实现url重写其无后缀,具体核心代码如下,有需求的朋友可以参考下,希望对大家有所帮助
    2013-08-08
  • C#反射实例学习及注意内容

    C#反射实例学习及注意内容

    C#反射的入门学习首先要明白C#反射提供了封装程序集、模块和类型的对象等等需要的朋友可以参考下
    2012-12-12
  • 详解ASP.NET Core高性能服务器HTTP.SYS

    详解ASP.NET Core高性能服务器HTTP.SYS

    HTTP.SYS本质上就是一个HTTP/HTTPS监听器,它是Windows网络子系统的一部分,是一个在内核模式下运行的网络驱动,今天通过本文给大家介绍下ASP.NET Core高性能服务器HTTP.SYS,感兴趣的朋友一起看看吧
    2022-04-04
  • ASP.NETCore6开启文件服务允许通过url访问附件的操作方法

    ASP.NETCore6开启文件服务允许通过url访问附件的操作方法

    最近在做一个工作台的文件上传下载功能,主要想实现上传图片之后,可以通过url直接访问,由于url直接访问文件不安全,所以需要手动开启文件服务,这篇文章主要介绍了ASP.NETCore6开启文件服务允许通过url访问附件,需要的朋友可以参考下
    2023-11-11

最新评论