(转)列举ASP.NET 页面之间传递值的几种方式

简介: 1.使用QueryString,  如....?id=1; response. Redirect().... 2.使用Session变量。3.使用Server.Transfer。4.Application 。
1.使用QueryString,  如....?id=1; response. Redirect()....
2.使用Session变量。
3.使用Server.Transfer。
4.Application 。
5.<input type="hidden"></input>
6.数据库。

使用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;

  }

  }

     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;

  }

  总结:

  本文讲述了使用不同的方法实现了ASP.NET页面间值传递,这三种方法是:QueryString,Session和Server.Transfer,我们应该反覆体会几种方法的异同。


本文源地址:http://blog.csdn.net/zengjibing/archive/2009/02/20/3915902.aspx < type=text/java> if ($ != jQuery) { $ = jQuery.noConflict(); } var isLogined = false; var cb_blogId = 84108; var cb_entryId = 1962455; var cb_blogApp = "Garden-blog"; var cb_blogUserGuid = "5edb30df-8e3e-e011-ac81-842b2b196315"; var cb_entryCreatedDate = '2011/2/23 16:41:00';

目录
相关文章
|
8月前
|
开发框架 数据可视化 前端开发
ASP.NET Core MVC+Quartz实现定时任务可视化管理页面
ASP.NET Core MVC+Quartz实现定时任务可视化管理页面
268 0
|
9月前
|
开发框架 JavaScript .NET
Asp.net C#页面传参的几种方式
Asp.net C#页面传参的几种方式
96 0
|
开发框架 .NET Windows
真正解决ASP.NET每一个页面首次访问超级慢的问题
真正解决ASP.NET每一个页面首次访问超级慢的问题
202 0
|
前端开发 .NET C#
学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面
原文:学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面 学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体  学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面   本篇文章介绍上一篇文章中创建的书籍信息管理系统中增删改查的四个Razor模板页面。
1219 0
|
.NET 数据库 开发框架
学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面
原文:学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面 学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.NET Core Razor 编程系列二——添加一个实体   一、创建脚本工具并执行初始迁移        在本节中,您将使用包管理控制台(PMC)来更新数据库:        •添加VisualStudio Web代码生成包。
1145 0
|
.NET 开发框架 数据库
学习ASP.NET Core Razor 编程系列五——Asp.Net Core Razor新建模板页面
原文:学习ASP.NET Core Razor 编程系列五——Asp.Net Core Razor新建模板页面 学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.
1251 0
|
Web App开发 .NET
学习ASP.NET Core Razor 编程系列七——修改列表页面
原文:学习ASP.NET Core Razor 编程系列七——修改列表页面  学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.
1163 0
|
Web App开发 JavaScript 前端开发
学习ASP.NET Core Razor 编程系列十二——在页面中增加校验
原文:学习ASP.NET Core Razor 编程系列十二——在页面中增加校验 学习ASP.NET Core Razor 编程系列目录 学习ASP.NET Core Razor 编程系列一 学习ASP.
1418 0
|
.NET Linux Windows
Asp.net core中由于页面编码导致的中文乱码
原文:Asp.net core中由于页面编码导致的中文乱码 问题描述 最近使用asp.net core写了一个简单的网站,在windows系统下完全没有出现问题。后来在linux系统中搭建了docker,并且在linux中自动使用git获取源码,编译,部署一条龙自动化。
2219 0
|
存储 .NET 开发框架
ASP.NET页面之间传递值的几种方式
  页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值、存储对象传值、ajax、类、model、表单等。但是一般来说,常用的较简单有QueryString,Session,Cookies,Application,Server.Transfer。
1464 0

相关产品

  • 云迁移中心