ASP.NET页面传值

  这个问题是上周去远洋公司面试的一道笔试题,面试的时候面试官也问到了,虽然事先有所准备当时也回答上了,但是从根本上说自己还不太理解。正好这两天做高效平台评教系统的时候用到了页面传值,就又从网上查了一些相关资料。

  常用的页面传值有以下几种:QueryString传值,Session传值,Cookies传值,Application以及Transfer传值。下面我们就一起了解一下各种传值方式的工作机制、相互联系以及优缺点。

  QueryString传值:

  QueryString传值又称作URL传值,是我们常用的也是比较简单的传值方式,它通过把我们需要传的数据拼接到连接地址中传输到目标地址。

  优点:URL传值操作简单,而且被所有浏览器支持,对于字符串类型的数据传输十分有效。

  缺点:安全系数不高,它把我们需要传输的数据完全暴露在地址栏中,如果不通过加密技术,对于安全性高的数据采用URL传值就有些不太理智了。而且该方式对于数据类型有要求,一般只能传递字符串,对于数组以及对象的传递不可使用该方式。

  Session传值:

  Session传值相信大家肯定不会陌生,它跟Application有一些共同点,也有不同之处。它是一个有作用域的全局变量,举个例子吧:对于一个应用网站来说,Session可以单个用户的信息。Application是没有局域限制的全局变量,它可以存储整个网站的信息,比如说网站的实时访问量。

  优点:使用比较简单,不仅可以传输数据,还可以传输对象,数据量的大小不受限制。

  缺点:在Session变量中存储大量的数据会消耗较多的服务器资源,数据容易丢失。

  Application传值:

  这个传值方式大家可能听得或者用的比较少,反正我是没有用过。把它与上面的Session传值联系起来相信我们理解起来就好多了。它在整个应用程序的生命周期中都是有效的,跟全局变量一样,因此可以在任何一个页面对其进行存取操作。

  优点:使用简单,消耗较少的服务器资源,不仅可以传递数据,还可以传递对象,数据量大小不受限制。

  缺点:作为全局变量容易被误操作。

  Cookies传值:

  Cookies传值大家再熟悉不过了,经常用电脑和手机的人可能都会在清理垃圾的时候发现有一项就是清理Cookies,当我们清理了之后,发现一些常用网站先前保存的用户名和密码需要重新输入。这就是Cookies的作用所在,它常用于在用户浏览器上存储一些与用户相关的信息,比如我们的用户名密码,当我们登陆的时候选择了保存用户名密码,信息就会被存入Cookies,下次登录的时候不需要我们人为地输入。所以我们清理垃圾的时候要根据需要选择是否清除这一项。Cookies跟Session也有一些相似之处就是都是针对有单个用户的,但它们本质上的区别在于Session存储在服务器端,而Cookies存储在客户端。

  优点:使用简单,保存用户状态的一种非常有效的方法,信息全部存储在客户端不会给服务器造成压力。

  缺点:安全性不高,容易被伪造,给用户带来一定的内存垃圾。

  Transfer传值:

  Transfer传值比较比较先进,只有Transfer才能算得上是面向对象软件设计所使用的方法。使用Transfer方法把流程从当前页面引导到另一个页面中,也就是我们常说的重定向,新的页面使用前页面的应答流,所以这个方法是完全面向对象的。

  优点:直接在服务器端进行重定向,使用简单方便,减少了客户端对服务器的请求,可以传递各种数据类型的值和控件的值。

  缺点:客户端浏览器中URL地址不会发生变化,因此可能会导致在新的页面出现一些意向不到的情况。比如说原页面跟目标页不在同一个虚拟目录下或其子目录下,一些使用相对路径的图片或者超链接都会导致错误的定向。

  以上这些是我从网上找到的常用的一些ASP.NET页面传值方式,通过自己的一些理解整理出来,有不足之处请大家批评指正。

时间: 2024-07-31 21:58:01

ASP.NET页面传值的相关文章

【转】ASP.NET页面传值汇总

介绍: 在网页应用程序的开发中,页面之间的传值应该是最常见的问题了. 在这篇文章里,azamsharp 将为我们介绍一些ASP.NET页面传值的方式.本文所举的例子非常简单,仅仅包含了一个文本框和几个按钮,当按钮点击时文本框中的字符串将会以不同的方 式传递到另外的页面去. 1. Response.Redirect (或称 Query String 方式.URL方式) Response.Redirect("WebForm5.aspx"); 首先让我们看看 Response.Redirec

asp.net 页面传值的几个方法_实用技巧

在这篇文章里,azamsharp 将为我们介绍一些ASP.NET页面传值的方式.本文所举的例子非常简单,仅仅包含了一个文本框和几个按钮,当按钮点击时文本框中的字符串将会以不同的方式传递到另外的页面去. 1. Response.Redirect (或称 Query String 方式.URL方式) 复制代码 代码如下: Response.Redirect("WebForm5.aspx"); 首先让我们看看 Response.Redirect 方法,这应该是最简单的了,当我们点击Respo

asp.net页面传值测试实例代码

WebForm_1.aspx内容如下: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm_1.aspx.cs" Inherits="页面传值.WebForm_1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu

asp.net页面传值测试实例代码(前后台)_实用技巧

WebForm_1.aspx内容如下: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm_1.aspx.cs" Inherits="页面传值.WebForm_1" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu

ASP.NET 页面传值常用方法总结_实用技巧

一.表单提交: 复制代码 代码如下: <formaction= "target.aspx" method = "post" name ="form1"> <input name = "param1" value ="1"/> <input name = "param2" value ="2"/> </form> ....

求asp.net页面传值代码

问题描述 按a窗体的button后,弹出b窗体,然后在了窗体的txt中输入文本后,点b窗体的button2后将文本传至a窗体并更新label的值为b窗体录入的值.这种业务的代码怎么写(有示例链接也可).新人刚学ASP.NET,请指教. 解决方案 解决方案二:学学javasript和html基本知识就行了不要把asp.net当winform学解决方案三:可以的,不过你要借助于js相关框架http://demo.jb51.net/js/2011/artDialog/index.html这里面中间的那

使用jqMobi开发app基础之页面传值方式

PC版的web程序两个两个页面之间的传值方式主要有,cookie,查询字符串,还可以通过服务端的session来交换数据.但app的传值方式呢? 由于app基本都是单页面的方式,查询字符串这种方式似乎行不通了,至少目前个人还没有见到这种例子.. 主要有1HTML5 LocalStorage 本地存储,2隐藏字段,3扩展属性,4服务器端的session等 1HTML5 LocalStorage 本地存储 这种传值方式类似于cookie传值方式,是HTML5的新标准.在HTML5中,本地存储是一个w

ASp.NET教程:页面传值的五种方法

ASP.NET跨页面传值技巧总结 关于页面传值的方法,引发了很多讨论.看来有很多人关注这个,我就我个人观点做了些总结,希望对大家有所帮助. 1.  使用QueryString变量 QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法.但是对于传递数组或对象的话,就不能用这个方法了.下面是一个例子: a.aspx的C#代码 private void Button1_Click(object

ASP.NET页面间的传值的几种方法

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