我们总是会遇到这样的情况,需要将数值从一个网页传递到另一个网页。在这篇文章中,向你展示了几种从一个网页向另一个网页传递数值的几种方法。在此例子中,创建的网页由一个文本控件和几个按钮控件组成。在文本框中输入的数据通过被标识在按钮控件中的不同方法从一个网页传递到另一个网页。

  Response.Redirect

  让我们首先看一看如何使用Response.Redirect方法传递数据。这是它们之中最简单的方法。在文本框中输入一些数据,并且当你输入完成数据后,按下“Respose.Redirect”按钮。我们会得到一个提示,有时我们想在catch程序中传递另一个网页,意味着捕捉到例外程序并且向另一个网页传递。如果你试图这样做,它会给你一个System.Threading例外程序。因为你想遗留下一个线程向另一个网页传递数据,所以这个例外程序就会被抛出。

  Response.Redirect("WebForm5.aspx",false);

  这个语句告诉编译器定位到“WebForm5.aspx”,这里的“false”意味着在当前网页不能结束你正在做的事情。应该看一看线程发布命令的System.Threading类。在下面,看一看按钮事件的C#代码。“txtName”文本控件的名字,文本框的内的值传递到一个叫做“WebForm5.aspx”的网页。在“?”之后的“Name”符号只是一个临时的响应变量,这个变量保持着文本的数值。

  private void Button1_Click(object sender, System.EventArgs e)

  {

  // Value sent using HttpResponse

  Response.Redirect("WebForm5.aspx?Name="+txtName.Text);

  }

  好的,到这种观点为止,你使用Response发送了数值。刚刚,在此我收集到了这些数值,所以在“WebForm5.aspx”page_Load事件中,写入这些代码。首先,我们检查到输入的值不为null。如果不是这样,我们只是简单地在网页上使用Label控件显示数值。注意:如果你使用Response.Redirect方法来传递这些数值,所有这些数值在浏览器的URL中都是不可见的。你绝不能使用Response.Redirect来传递信用证号码和机密信息。

  if (Request.QueryString["Name"]!= null)

  Label3.Text = Request.QueryString["Name"];

  Cookies

  接下来使用Cookies。Cookies在服务器端创建,但是客户端省略。在此 “Cookies” 按钮的click事件中,写入以下代码:

  HttpCookie cName = new HttpCookie("Name");

  cName.Value = txtName.Text;

  Response.Cookies.Add(cName);

  Response.Redirect("WebForm5.aspx");

  首先,创建一个cookie命名为“cName”。既然一个cookie实例可以拥有许多数值,告诉编译器这个cookie持有“Name”数值。我们将它赋值给TextBox并且最结后将它加入Response流,再使用Response.Redirect方法传递给其它网页。

  让我们看一看如何得到被另一个网页传递的cookie数值。

  if (Request.Cookies["Name"] != null )

  Label3.Text = Request.Cookies["Name"].Value;

  如你所看到的,象我们以前做一的一样正是使用同一种方法,刚刚我们在Request.QueryString之内,使用了Request.Cookies。记注一些浏览器不接收cookies。

  Session Variables

  接下来我们看一看session变量,这些变量由服务器来处理。第一个响影一从客户端传递到服务器,Sessions就创建了,并且当用户关闭浏览器窗口或者一些异常操作发生,session就会结束。给你一些可以使用session变量来传递数值的方法。在下面你看到为用户创建的Session和 “Name”是关键字,也如知名的Session关键字一样,关键字被赋给TextBox数值。

  // Session Created

  Session["Name"] = txtName.Text;

  Response.Redirect("WebForm5.aspx");

  // The code below shows how to get the session value.

  // This code must be placed in other page.

  if(Session["Name"] != null)

  Label3.Text = Session["Name"].ToString();

  Application Variables

  有时,我们需要存取来自网页任何地方的数值。因为那样,可以使用Application变量。这里有一小段代码,这段代码显示如何做到那些事情。一旦创建Application变量并且为其赋值,在应用程序的任何地方都可以重新得到它的值。

  // This sets the value of the Application Variable

  Application["Name"] = txtName.Text;

  Response.Redirect("WebForm5.aspx");

  // This is how we retrieve the value of the Application Variable

  if( Application["Name"] != null )

  Label3.Text = Application["Name"].ToString();

  HttpContext

  可以使用HttpContext从网页中重新得到数值。通过使用方法的属性获得那些数值。既然它们易于编写代码和修改,使用属性是一种好方法。在你的第一个网页中,制造一个属性,这个属性可以返回TextBox的值。

  public string GetName

  {

  get { return txtName.Text; }

  }

  我们使用Server.Transfer来将此控件发送到一个新网页。注意:Server.Transfer仅仅将此控件传递到新的网页并且不重新定位该网页,这意味着你会看到在URL中旧网页的地址。简单地在“Server.Transfer”按钮单击事件,并且增加下列代码。

  Server.Transfer("WebForm5.aspx");

  现在,让我们定位网页,数值就传递到该网页上,在这种情况下使用的该网页是“webForm5.aspx”。

  // You can declare this Globally or in any event you like

  WebForm4 w;

  // Gets the Page.Context which is Associated with this page

  w = (WebForm4)Context.Handler;

  // Assign the Label control with the property "GetName" which returns string

  Label3.Text = w.GetName;

  Special Note

  特别注意 与你看到的一样,从一个网页向别一网页传递数值时有不同的方法。每一个方法有它自己的优点也有其缺点。所以,当你传递数值时,选择好你所需要的所以你就会有一种好方法,这种方法对你是最为可行的。如果你有不懂的可以联系上海治疗阳痿医院程序详谈哦?

转载于:https://www.cnblogs.com/chaorenman/p/4086489.html

asp网络编程:Web程序中网页间数据传递方法小结相关推荐

  1. java中使用es的dsl_基于DSL的基于图论的Java程序中输入图数据的方法

    java中使用es的dsl 我们大多数人已经编写了一些处理图论算法的程序,例如找到两个顶点之间的最短路径,找到给定图的最小生成树等等. 在这些算法的每一种中,表示图形的编程方式是使用邻接矩阵或邻接列表 ...

  2. java web分层和层间数据传递 vo bo po (转载)

    还记得97年左右开始的胖客户机和瘦客户机之争吗?之后又是CS和BS之争,然后又是两层和多层之争...,十年之后的今天我们再回过头看这些争论,一切似乎看起来都那么理所应当:程序怎么能不分层啊?可是再想一 ...

  3. java web分层和层间数据传递 vo bo po

    还记得97年左右开始的胖客户机和瘦客户机之争吗?之后又是CS和BS之争,然后又是两层和多层之争...,十年之后的今天我们再回过头看这些争论,一切似乎看起来都那么理所应当:程序怎么能不分层啊?可是再想一 ...

  4. asp.net页面间数据传递方法总结篇

    1. Get(即使用QueryString显式传递) 方式:在url后面跟参数. 特点:简单.方便. 缺点:字符串长度最长为255个字符:数据泄漏在url中. 适用数据:简单.少量.关键的数据. 适用 ...

  5. Android零基础入门第83节:Activity间数据传递方法汇总

    2019独角兽企业重金招聘Python工程师标准>>> 在Activity间传递的数据一般比较简单,但是有时候实际开发中也会传一些比较复杂的数据,本节一起来学习更多Activity间 ...

  6. 将终结点图添加到你的ASP.NET Core应用程序中

    在本文中,我将展示如何使用DfaGraphWriter服务在ASP.NET Core 3.0应用程序中可视化你的终结点路由.上面文章我向您演示了如何生成一个有向图(如我上篇文章[译]使用DOT语言和G ...

  7. 艾伟_转载:VS 2010 和 .NET 4.0 系列之《在ASP.NET 4 Web Forms中实现URL导向》篇

    本系列文章导航 VS 2010 和 .NET 4.0 系列之<ASP.NET 4 中的SEO改进 >篇 VS 2010 和 .NET 4.0 系列之<干净的Web.Config文件 ...

  8. C#网络编程服务器端程序实现源码浅析

    C#网络编程服务器端程序实现源码是怎么样的呢?让我们来看看其中重要的一部分: 由于在此次程序中我们采用的结构是异步阻塞方式,所以在实际的程序中,为了不影响服务器端程序的运行速度,我们在程序中设计了一个 ...

  9. 在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务

    在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务 https://procodeguide.com/programming/polly-in-aspnet-core ...

  10. 白话数字签名(3)——Web程序中的数字签名【转】

    摘要 阅读本文并探索     - 如何突破Web程序无状态性这个让人抓狂的障碍实现自动显示签名结果和批量签名功能.     - 如何将签名功能封装到一个实现了IHttpHandler接口的类库中,使C ...

最新文章

  1. miniui页面移动的时候透明_【H5】316 移动端H5跳坑指南
  2. 产品经理十大悲催错误
  3. python矩阵操作_Python中的矩阵操作
  4. pytorch构造可迭代的DataLoader,动态流式读取数据源,不担心内存炸裂(pytorch Data学习三)
  5. __cplusplus、extern “C”关键字意义
  6. hdu4857 拓扑排序
  7. access如何查询两张表的内容_在Excel中使用SQL语句实现精确查询
  8. “蓝桥杯”练习系统练习题答案(自己做的)
  9. C++初学必练基础题【第四期】
  10. 算法竞赛入门经典 电子书(附习题解析)网盘下载
  11. iOS后台唤醒实战:微信收款到账语音提醒技术总结
  12. 自考 软件工程专业 07169 软件开发工具
  13. 牛客寒假算法集训营1 小a与军团模拟器(启发式合并)
  14. android模拟器装包,逍遥模拟器如何安装本地应用包apk?
  15. 我们到底该转行Web全栈工程师吗?
  16. unity开发xbox手柄 驱动坑
  17. C语言中Const指针变量(常指针)
  18. (2021牛客多校一)A.Alice and Bob(博弈)
  19. 家用计算机是什么时候开始流行,什么时候电脑在我国开始普及?
  20. POJ1743——不可重迭的最长重复子串

热门文章

  1. C++ (void)_r;什么意思
  2. FISCO BCOS流量控制实现
  3. linux 格式化查看json文件数据
  4. hashmap7源码浅析及与hashmap8的比较
  5. oracle反生异常会回滚吗,Oracle transaction rollback 事务异常回滚问题分析
  6. web访问linux创建目录权限设置,centos7下新建一个用户并限制访问目录
  7. java 父类中的this_父类方法中的this
  8. hive udaf_Hive 混合函数 UDTF UDF UDAF详解
  9. Oracle 数据类型,表空间、用户与权限,DDL、DML 语句、约束,exp/imp
  10. Idea中@Autowired 黄色波浪线问题,注入类显示红色波浪线,去除重复代码导致的波浪黄线,去除xml文件里sql语句的黄色行背景色,问题解决