http://www.cnblogs.com/makqiq/p/5882448.html

1.Querystring

Querystring也叫查询字符串,这种页面间传递数据是利用网页地址URL。如果要从A页面跳转到B页面,则可以用Request.Redirect(”B.aspx?name=参数值”);在页面跳转后用Ruquest[“参数名”]来接收参数。 Request.QueryString["name"]和Get     Request.Form["name"]和Post

这种方法使用简单,不用服务器资源。但是很容易被篡改且不能传递对象,只有在通过URL 请求页时查询字符串才是可行的。

2.ViewState

这是ASP.NET框架管理的一个隐藏窗体字段,使用时可用ViewState[“变量名”]=数值,取数据的时候用:变量 = ViewState[“变量名”];

ViewState在同一个页面多个请求的时候回自动保留值,不用服务器资源,用哈希格式存储;因ViewState存于页面中,当存储较大的值时,用户页面速度变慢。虽然是哈希值存储,但任然会出现被恶意篡改。

3.Cookie

Cookie使用 Response.Cookie[“键名”] = 值;取数据 变量 = Request.Cookie[“键名”]。

Cookie存储在客户端中,适合存储经常改动比较少的信息,不用服务器资源,可配置到期时间。但Cookie可能在客户端被禁用或删除,因为是明文的文本,不宜存储敏感的和未加密的数据。

4.Application

Application是一全局性的变量,所有用户共享一个Application变量。使用Application[“变量名”]= 值,取值:变量 = Application [“变量名”],清除它用:Application[“变量名”] = null;

Application可给程序中所有的页面访问,但如服务器发生故障数据就会丢失。

5.Session

Session的使用方法和Application一样。Session对象用来存储会话信息,不同客户端生成的Session不同,用于存在特定于单独会话的短息信息。易于实现,并且提供较高的安全性和持久性,可以应对IIS 重启和辅助进程重启,可在多进程中使用。缺点是耗用服务器端的内存。所以不要存储大量的信息。Session 最常见的用途是与Cookie 一起向Web 应用程序提供用户标识功能,Session也可用于不支持Cookie 的浏览器。但是,使用无Cookie 的Session 需要将会话标识符放置在查询字符串中,同样会遇到本文在查询字符串一节中陈述的安全问题。

6.Cache

Cache 具有强大的数据操作功能, 以键值对集合的形式存 储数据,可以通过指定关键字来插入和检索数据项。它的基于依 赖性的终止功能, 使它能够精确控制如何并及时更新和消除缓 存中的数据。它可以内部进行锁定管理,不需要象Application 对象那样使用Lock()和Unlock()方法进行串行化管理。缺点是使用 方法较复杂

7.Server.Transfer

不同情况下使用方法:

情况一:源页面可以跳转到目标页面,源页面传递数据给目标页面

使用查询字符串, 将少量信息从一页传输到另一页以及不 存在安全性问题时,是一个简单常用的方法;使用Server.Transfer方法,可传递表单数据或查询字符串到另一个页面,还可以 保存初始页的HttpContext, 当目标页和源页面在同一个服务器 时,可以用此方法。

情况二:页面传递数值给自身页面

即在对同一页的多个请求间保留值, ViewState 属性可提供具有基本安全性的功能。也可用隐藏域,存储少量回发到自身或另一页的页信息时使用,不考虑安全性问题时使用。

情况三:源页面传递数值给目标页面,而源页面不能直接连接到目标页面。

Application: 存储由多个用户使用且更改不频繁的全局信息,此时安全性不成为问题。不要存储大量的信息。Session:存储特定于单独会话的短期信息,并且需要较高的安全性。不要在会话状态中存储大量的信息。需要注意,将为应用程序中每一会话的生存期创建并维护会话状态对象。在支持许多用户的应用程序中, 这可能会占用大量服务器资源并影响可缩放性。

Cookie: 当您需要在客户端存储少量信息以及不存在安全性问题时使用。类的静态属性,方便传送多个数据。

Cache :对象用于单个用户、一组用户或所有的用户。可以为多个请求长时间、高效率的保存数据。上述几个方法, 不仅用于情况三, 前面两种情况都可以使用,只是没有必要时尽量少用,否则会造成资源浪费或增加程序的复杂性

转载于:https://www.cnblogs.com/whl4835349/p/5892347.html

asp.net 的页面几种传值方式相关推荐

  1. iOS 页面间几种传值方式(属性,代理,block,单例,通知)

    第二个视图控制器如何获取第一个视图控制器的部分信息 例如 :第二个界面中的lable显示第一个界面textField中的文本 这就需要用到属性传值.block传值 那么第一个视图控制器如何获的第二个视 ...

  2. MVC 各种传值方式 ASP.NET MVC view与controller传值方式

    MVC 各种传值方式 ViewData传值. HomeController.cs Co de: public ActionResult Index() {       ViewData["T ...

  3. vue2的三种传值方式之父传子、子传父、兄弟共享数据

    vue2的三种传值方式之父传子.子传父.兄弟共享数据 1. 父传子 <!-- 父组件 --> <template><div class="app"&g ...

  4. vue父子组件的三种传值方式

    vue父子组件的三种传值方式 函数类型的props传值 //父组件 <template><Children :getChildName="getChildName" ...

  5. struts中action与页面之间的传值方式

    1.默认配置下的excute方法传值 如何把登陆页面中的用户名传递到登录成功的页面中呢? 有三种方式, 1,使用默认的action的传递方式. 2,自定义一个vo,在action中使用这个vo 3,使 ...

  6. iOS中常见的6种传值方式,UIPageViewController

    通过属性传值.方法传值.代理传值.Block传值.单例传值.通知传值6种方式进行不同视图之间的传值.不同方式只需要在AppDelegate中更改下UINavigationController的根控制器 ...

  7. C++ 函数参数3种传值方式(以交换两个数为例)

    简介 在C++中,函数参数的传值方式有传值调用.指针调用和引用调用.接下来,通过一个实例来演示三者区别. 代码 #include <iostream>using namespace std ...

  8. vue的三种传值方式:父传子,子传父,子传子

    vue 不同组件间传值方式 1 父传子 2 子传父 3 非父子传值 1.父组件向子组件进行传值(父传子) 父组件: <div><input type="text" ...

  9. ajax三种传值方式

    var data=JSON.stringify({'name":name,"sex":sex}); $.ajax({ //ajax传值方式:1,url后面直接跟参数(ge ...

最新文章

  1. R语言使用gt包和gtExtras包优雅地、漂亮地显示表格数据:使用gtExtras包添加一个图,显示表中某一列中的数字、并自定义表格数据显示的主题格式、并自定义数值数据的格式(例如百分比)
  2. LeetCode-链表-203. 移除链表元素
  3. (chap5 web服务器) 保存资源的缓存
  4. 怎么增加android模拟器内存卡,增加android模拟器的内存大小
  5. 外设驱动库开发笔记29:DS17887实时时钟驱动
  6. Python基础学习笔记之(一)
  7. 对象——从现实世界的抽象(*)
  8. 修改apache的网站根目录
  9. EChart介绍和使用
  10. C罗是你人生中最好的健身教练和精神导师
  11. 【考研数学】微分中值定理计算极限专题
  12. 你想靠AI实现永生吗?
  13. 电路设计_物联网芯片资讯——GPRS
  14. 董明珠称格力宁可降工资也不裁员;阿里发布财年第四季度及全年财报
  15. 利用docx4j完美导出word文档(标签替换、插入图片、生成表格)
  16. 【西语】【2】Recuërdame antes de que se desaparezca la memoria del amor 在爱的记忆消失前,请记住我
  17. TC限速原理和TC限速的实现
  18. Word中插入高亮代码
  19. 在线文档查看器GroupDocs.Viewer 9月新版V17.9发布 | 附下载
  20. 一个高逼格开发者必须理解的大型分布式网站的几点概念

热门文章

  1. altium designer 自动扇出功能
  2. (五)springcloud微服务分布式云架构 - 云架构代码结构构建
  3. 解决win7的outlook打不开的问题
  4. Java网络编程从入门到精通(5):使用InetAddress类的getHostName方法获得域名
  5. python对文件进行读写操作
  6. 《集体智慧编程》——第一章导读
  7. 推荐12款非常有用的流行 jQuery 插件
  8. 如何在Ubuntu 11.10下安装Java
  9. 三个监控linux网卡流量脚本
  10. 用VSTS进行网站压力测试