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/article/details/3915902

ASP.NET 页面之间传递值的几种方式的更多相关文章

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

    页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...

  2. ASP中页面之间传递值的几种方式

    ASP.NET页面之间传递值的几种方式 页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryS ...

  3. ASP.NET页面之间传递值的几种方式

    目录 QueryString Session Cookie Application 一.QueryString QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中. ...

  4. [转]ASP.NET页面之间传递值的几种方式

    页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...

  5. [转载]ASP.NET页面之间传递值的几种方式

    页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...

  6. 列举Asp.net页面之间传递值的几种方式和优缺点?

    一.QueryString变量 优点:使用简单,对于安全性要求不高时传递数字或是文本值非常有效. 缺点:缺乏安全性,由于它的值暴露在浏览器的URL地址中的:不能传递对象. 二. 使用Applicati ...

  7. spring boot 之如何在两个页面之间传递值(转)

    原文地址:spring boot 之如何在两个页面之间传递值 问题:页面之间的跳转,通常带有值的传输,但是,在现在比较流行的SPRING MVC WEB 开发模型中,设计机制导致页面之间的直接接跳转和 ...

  8. 在两个ASP.NET页面之间传递变量【转】

    ASP.NET提供了事件驱动编程模型,使开发者简化了应用程序的总体设计,但是这个也造成了它固有的一些问题,例如,在传统的ASP里,我们可以通过使用POST方法很容易地实现页面间传递变量,同样的事情,在 ...

  9. ASP.NET 弹出对话框和页面之间传递值的经验总结

    今天碰到一个弹出对话框(PopUp dialog)的问题, 因该是个傻瓜问题, 但是还是让我研究了半天, 总结了一些前人经验, 拿出来跟大家分享一下! 在ASP.Net中页面之间的传值方法有很多,但是 ...

随机推荐

  1. vue 数据(data)赋值问题

    总结一下我遇到的一个纠结很久的问题. 在项目中需要用到后台的数据对前端渲染,使用到了vue整合的axios,使用vue中的钩子函数在页面组件挂载完成之后向后台发送一个get请求然后将返回后的数据赋值d ...

  2. appium桌面版和命令行版的安装

    一.appium桌面版: 启动很慢,一般用于元素定位 Appium-Desktop官方下载地址:https://github.com/appium/appium-desktop/releases/ ( ...

  3. 洛谷 P4248 / loj 2377 [AHOI2013] 差异 题解【后缀自动机】【树形DP】

    可能是一个 SAM 常用技巧?感觉 SAM 的基础题好多啊.. 题目描述 给定一个长度为 \(n\) 的字符串 \(S\) ,令 \(T_i\) 表示它从第 \(i\) 个字符开始的后缀,求: \[ ...

  4. css实现视觉差的滚动

    之前在逛知乎的时候,发现知乎app首页中偶尔掺杂的广告图片,都是做的视觉差的效果,广告图片的向上速度明显比外面页面的上拉速度慢了很多,看起来很炫酷,然后在网上看了下,发现有很多js插件可以实现这种效果 ...

  5. 【Python 解决错误】selenium.common.exception.WebDriverException

    近来准备写个脚本去搜索某端游的官网交易平台.因为也不懂高端的爬虫技术,决定用selenium去戳.这里采用的是chrome浏览器,链接网页时报错: File "C:\Python37\lib ...

  6. linux磁盘分区fdisk命令详解

    1.什么是分区?    分区是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做一个独立的磁硬使用.分区表是一个硬盘分区的索引,分区的信息都会写进分区表.2.为什么要有多个分区? 防止数 ...

  7. JavaScript HTML DOM学习记录

    HTML DOM (文档对象模型) 当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). HTML DOM 模型被构造为对象的树. HTML DOM 树 通过 ...

  8. Node.js 文件夹目录结构创建

    第一次接触NodeJS的文件系统就被它的异步的响应给搞晕了,后来发现NodeJS判断文件夹是否存在和创建文件夹是还有同步方法的,但是还是想尝试使用异步的方法去实现. 使用的方法:fs.exists(p ...

  9. HTTP 状态代码之汇总+理解

    这里有百度百科的介绍,还挺全的. 下面是在开发过程中遇到过的各种码,自己的问题自己的原因,同码不同错,贱笑贱笑. HTTP 406 Not Acceptable 这个错误的原因,是由于框架使用了`Sp ...

  10. Message Queue基本使用说明

    一.安装Message Queue: 在Win7之前,控制面板,添加删除组件(Windows Message Queue). Win7~Win8:控制面板,程序和功能,启用或关闭Windows功能(找 ...