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

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

  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

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

时间: 2024-11-10 00:26:49

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

asp网络编程:在服务器端控制网页

使用.Net和C#开发Web应用程序往往能给我们很大的启示,尤其在开发相对简单的例行任务时就更是如此.例如,在许多时候,我们都需要有条件地显示一个网页的一部分.需要这么做的原因有许多,例如,根据用户的角色,有一部分是它不应当看到的.或者,我们也可以考虑搜索功能,只有点击了一个链接后,搜索选项才是可用的. 我们先来解释一下解决这一问题的方法,然后再详细地解释所使用的代码.在.Net中开发Web应用程序,我们既可以使用服务器端的Web控件(Web表单)也可以使用HTML控件.使用.NET开发Web应

Android(java)学习笔记220:开发一个多界面的应用程序之界面间数据传递

1.界面跳转的数据传递 (1)intent.setData() --> intent.getData():     传递的数据比较简单,一般是文本类型的数据String:倘若我们传递的数据比较复杂(几种类型),或者比较长,这个方法就不怎么实用了. (2)如果有很多的不同类型的数据传递 intent.putExtra(key, value): • 基本类型的数据都可以传递,基本类型数据的数组也可以传递 • 对象必须是实现序列化接口的对象.Bitmap • 传递一组数据:          放数据:

ASP.NET web 程序中使用Sqlite嵌入式数据库(相对路径)

string sqliteFilePath = Server.MapPath("~/App_Data/SQLite数据库名"); //这个文件是预先生成的数据库文件 SQLiteConnection conn = new SQLiteConnection("Data Source=" + sqliteFilePath);//声明一个SQLite数据库的链接 conn.Open();//打开数据库 当然,在这之前要先添加引用 System.Data.SQLite.dl

在ASP.NET Core Web API中为RESTful服务增加对HAL的支持

HAL(Hypertext Application Language,超文本应用语言)是一种RESTful API的数据格式风格,为RESTful API的设计提供了接口规范,同时也降低了客户端与服务端接口的耦合度.很多当今流行的RESTful API开发框架,包括Spring REST,也都默认支持HAL规范,当RESTful API被调用后,服务端就会返回ContentType为application/hal+json的JSON内容,例如: { "_links": { "

《C#网络编程高级篇之网页游戏辅助程序设计(扫描版)》

<C#网络编程高级篇之网页游戏辅助程序设计>通过编写C#网络编程语言中具有代表性的实例,向读者深入细致地讲解了如何利用C#语言进行网页游戏辅助程序设计.本书通过大量的代码引导读者一步步学习和掌握C#的网络应用编程的方法和网页游戏辅助程序的设计技术. <C#网络编程高级篇之网页游戏辅助程序设计>涉及的领域包括多线程编程技术.socket套接字编程.tcp协议编程.http协议编程.远程控制技术.木马技术.模拟键盘和鼠标技术.网页游戏辅助程序设计技术等. <C#网络编程高级篇之网

在Java Web程序中使用监听器可以通过以下两种方法

之前学习了很多涉及servlet的内容,本小结我们说一下监听器,说起监听器,编过桌面程序和手机App的都不陌生,常见的套路都是拖一个控件,然后给它绑定一个监听器,即可以对该对象的事件进行监听以便发生响应,从本质上来说这些都是观察者模式的具体实现,在web程序中的监听器也不例外.在Java Web程序中使用监听器可以通过以下两种方法:通过注解@WebListener来标识一个自定义的监听器:[java] view plain copy@WebListener public class Custom

Socket网络编程--聊天程序(9)

这一节应该是聊天程序的最后一节了,现在回顾我们的聊天程序,看起来还有很多功能没有实现,但是不管怎么说,都还是不错的.这一节我们将讲多服务器问题(高大上的说法就是负载问题了.)至于聊天程序的文件发送(也即二进制文件发送例如图片)和单点登陆(就是多加一个数组fd_L[],用来记录是否已经登陆过了.),这些问题就不讨论了. 支持多服务器实现负载问题的聊天程序 今天才知道原来我们一直使用的select来处理IO多路复用的这个函数最多只能有1024个连接,因为内部实现里面的数组就是只有1024,多了不行.

在ASP.NET 5应用程序中的跨域请求功能详解

在ASP.NET 5应用程序中的跨域请求功能详解 浏览器安全阻止了一个网页中向另外一个域提交请求,这个限制叫做同域策咯(same-origin policy),这组织了一个恶意网站从另外一个网站读取敏感数据,但是一些特殊情况下,你需要允许另外一个站点跨域请求你的网站. 跨域资源共享(CORS:Cross Origin Resources Sharing)是一个W3C标准,它允许服务器放宽对同域策咯的限制,使用CORS,服务器可以明确的允许一些跨域的请求,并且拒绝其它的请求.CORS要比JSONP

在ASP.NET MVC5应用程序中快速接入QQ和新浪微博OAuth

这篇文章演示如何在你的ASP.NET MVC5应用程序中支持用户使用腾讯QQ和新浪微博的open authentication. 起步 安装Visual studio 2013 higher或者Visual studio express 2013 for web就不再赘述了,点击这里下载. 创建应用程序 打开vs,在Template中选择C#->asp.net web application ,命名为OauthDemo,并点击OK 在弹出窗口中选择MVC template,并且选择"Cha