ASP.NET页面之间传值的五种常用方法

2023-11-08

1、使用QueryString变量
QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。
优点:1)使用简单,对于安全性要求不高时传递数字或是文本值非常有效。
缺点:1).缺乏安全性,由于它的值暴露在浏览器的URL地址中的。
2).不能传递对象。
用途:后台管理页中,获取修改信息的ID

实例:

a.aspx的C#代码

  
  
1 private void Button1_Click(object sender, System.EventArgs e) 2 { 3 string s_url; 4 s_url = "b.aspx?name=" + Label1.Text; 5 Response.Redirect(s_url); 6 }

b.aspx中C#代

  
  
1 private void Page_Load(object sender, EventArgs e) 2 { 3 Label2.Text = Request.QueryString["name"]; 4 }

2、使用Application 对象变量
Application变量在整个应用程序生命周期中都是有效的,类似于使用全局变量一样,所以可以在不同页面中对它进行存取。它和Session变量的区别在于,前者是所有的用户共用的全局变量,后者是各个用户独有的全局变量。
举个例子来解释:
网站访问的计数器变量一般采用Application变量,多个请求访问时共享这一个变量,均可对它进行操作,该变量可以被整个应用程序的各个页面直接使用。
用户登陆的帐号名一般采用Session变量,多个请求访问时有各自的Session变量,只能对自己的该Session变量进行操作,整个应用程序的各个页面直接使用这个变量来获得用户的基本信息。
优点:1).使用简单,消耗较少的服务器资源。
2).不仅能传递简单数据,还能传递对象。
3).数据量大小是不限制的。
缺点:1).作为全局变量容易被误操作。
用途:网站访问的计数器变量一般采用Application变量。

实例:

a.aspx的C#代码

  
  
1 private void Button1_Click(object sender, System.EventArgs e) 2 { 3 string Name1Value = "HelloName1"; 4 int Name2Value = 1234567; 5 Application["Name1"] = Name1Value; 6 Application["Name2"] = Name2Value; 7 }

b.aspx中C#代码

  
  
1 private void Page_Load(object sender, System.EventArgs e) 2 { 3 string myName1Value; 4 int myName2Value; 5 myName1Value = Application["Name1"].ToString(); 6 myName2Value = (int)Application["Name2"]; 7 }

3、使用Session变量
这个应该是最常见的方法了!Session用于保存每个用户的专用信息.她的生存期是用户持续请求时间再加上一段时间(默认是20分钟).Session变量和Application变量非常类似,它们的区别也已经在上面关于Application变量时提到了。
优点:1).使用简单,不仅能传递简单数据类型,还能传递对象。
2).数据量大小是不限制的。
缺点:1).在Session变量存储大量的数据时会消耗较多的服务器资源。
用途:会员和管理员登陆时的用户名采用Session变量保存,还有验证码也可采用Session变量保存,从而与用户输入的值进行比较

实例:

a.aspx的C#代码

  
  
1 private void Button1_Click(object sender, System.EventArgs e) 2 { 3 Session["name"] = Label.Text; 4 }

b.aspx中C#代码

  
  
1 private void Page_Load(object sender, EventArgs e) 2 { 3 string name; 4 name = Session["name"].ToString(); 5 }

4、使用Cookie对象变量
这个也是大家常使用的方法,与Session一样,Cookie对象也是对每一个用户而言的,但是有个本质的区别,即Cookie是存放在客户端的,而session是存放在服务器端的。
优点:1).使用简单,是保持用户状态的一种非常常用的方法。
缺点:1).常常被人认为用来收集用户隐私而遭到批评。
用途:在购物网站中用户跨多个页面表单时可以用它来保持用户状态。

实例:

a.aspx的C#代码

  
  
1 private void Button1_Click(object sender, System.EventArgs e) 2 { 3 HttpCookie objCookie = new HttpCookie("myCookie","Hello,Cookie!"); 4 Response.Cookies.Add(objCookie); 5 }

b.aspx中C#代码

  
  
1 private void Page_Load(object sender, System.EventArgs e) 2 { 3 string myName1Value; 4 myName1Value = Request.Cookies[ "myCookie" ].Value; 5 }


5、使用Server.Transfer方法
Server.Transfer是从当前的ASPX页面转到新的ASPX页面,服务器端执行新页并输出,在新页面中通Context.Handler来获得前一个页面传递的各种数据类型的值、表单数据、QueryString.由于重定向完全在服务器端完成,所以客户端浏览器中的URL地址是不会改变的。调用Server.Transfer时,当前的ASPX页面终止执行,执行流程转入另一个ASPX页面,但新的ASPX页面仍使用前一ASPX页面创建的应答流。
优点:1).直接在服务器端重定向,使用简单方便,减少了客户端对服务器端提出请求。
2).可以传递各种数据类型的值和控件的值。
缺点:1).客户端浏览器中的URL地址是不改变,会导致在新的页面可能出现一些意想不到的问题。比如如果源页面和目的页面不在同一个虚拟目录或其子目录下,那么使用相对路径的图片、超链接都会导致错误的指向。

实例:

a.aspx的C#代码

  
  
1 public string Name 2 { 3 get{ return Label1.Text;} 4 } 5 ?private void Button1_Click(object sender, System.EventArgs e) 6 { 7 Server.Transfer("b.aspx"); 8 }

b.aspx中C#代码

  
  
1 private void Page_Load(object sender, EventArgs e) 2 { 3 a newWeb; //实例a窗体 4 newWeb = (source)Context.Handler; 5 string name; 6 name = newWeb.Name; 7 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET页面之间传值的五种常用方法 的相关文章

随机推荐

  • 数据挖掘——决策树和K近邻

    决策树和K近邻 一 线性回归 房价预测 第1关 线性回归算法思想 一 相关知识 1 gt 简单线性回归 2 gt 多元线性回归 二 编程要求 三 参考答案 第2关 动手实现线性回归 一 相关知识 1 gt 数据集介绍 2 gt 线性回归算法
  • android蓝牙支持双向,【玩机攻略】了解蓝牙LDAC,玩转双向蓝牙LDAC

    原标题 玩机攻略 了解蓝牙LDAC 玩转双向蓝牙LDAC LDAC是由SONY开发的一项蓝牙音频编码技术 它的最高传输速率可达990kbps 相当于普通蓝牙的3倍 文件采样率最高可支持96 khz 而即使是aptX HD 其最高所能支持的文
  • Windows 在CMD 终端中使用SS代理

    打开CMD后先分别输入下面两条命令 set http proxy 127 0 0 1 1080 set https proxy 127 0 0 1 1080 其中的本地IP 地址和端口号如果你没有改过的话应该是没问题的 改过的话就填改过的
  • 新版-C语言学生信息管理系统

    拥有基本的学生信息系统的功能 功能点如下所示 1 添加学生信息 2 修改学生信息 3 删除学生信息 4 查看学生信息 5 搜索学生信息 6 查看系统学生总人数 7 学生信息排序 8 保存学生信息 保存在D students txt 9 导入
  • C++ string类型的字符串长度获取的三种方法

    1 用string的成员方法length 获取字符串长度 length 比较直观 表示的就是该字符串的长度 cpp
  • 【踩坑篇】代码中使用 Long 作为 Map的Key存在的问题

    本周的工作结束 详述一些在项目代码中实际遇到的一些坑 代码中遇到这样一个场景 有个业务接口 接口返回的值是一个JSON格式的字符串 通过JSON解析的方式 解析为格式为 Map
  • 在STM32CubeIDE中使用IAR编译器

    在STM32CubeIDE中使用IAR编译器 一 前言 IAR编译器的大名早有耳闻 但本人一直未深度使用 主要有以下三点原因 首先 它收费 因此笔者更倾向于使用免费的GCC工具链 其次 作为嵌入式开发来说 IAR封装了太多底层细节 要深入了
  • Android开发学习笔记:Service的简介和启动方式

    一 Service的简介 1 Service 介绍和作用 Service是Android系统中的四大组件之一 它是一种长生命周期的 没有可视化界面 运行于后台的一种服务程序 比如我们播放音乐的时候 有可能想边听音乐边干些其他事情 当退出播放
  • 什么是实体-联系图(ER图)

    实体 联系图 ER图 数据模型中包含3种相互关联的信息 数据对象 数据对象的属性及数据对象彼此间相互连接的关系 1 数据对象 数据对象是对软件必须理解的复合信息的抽象 所谓符合信息是指具有一系列不同性质或属性的事物 仅有单个值得事物 例如
  • 安天逆向教程——常用汇编语句

    一 汇编基础 二 条件分支 反汇编时更多关注这些条件分支 如果看懂这些条件分支 会对程序的大体逻辑有一个整体的了解 至于程序里面的细节 有时会省略掉 往往关键的跳转理解了甚至进行一点点的改动 就会使得程序发生翻天覆地的变化 三 栈和函数调用
  • PO模式-unittest

    PO模式是指将页面元素的定位以及元素的操作分离出来 测试用例脚本直接调用这些封装好的元素操作来组织测试用例 从而实现了测试用例脚本和元素定位 操作的分离 本文采用PO模式和unittest框架 对readmine系统执行了两条测试用例 文件
  • MATLAB三维绘图基础meshgrid函数的用法解析

    MATLAB三维绘图基础meshgrid函数的用法解析 MATLAB中meshgrid函数是用来生成网格的 函数用法是 X Y meshgrid x y 这种是最常用的一种用法 x和y分别是两个向量 使用示例 结果 A中的每个点对应的是x轴
  • STM32学习--中断

    这里写目录标题 什么是中断 中断的作用 中断的特点 STM32与中断 NVIC 中断通道 中断优先级 中断服务函数 SysTick中断 内核中断 SysTick中断函数 NVIC库函数 NVIC初始化函数 抢断优先级分组 USART使能中断
  • 博客是个好东西

    到底有么有必要写blog 从热情到荒废 最近几年老觉得个人写blog是个费时费力的事情 所以荒废了好长时间没有写blog了 加之CSDN那几年不思进取 博客搞得一塌糊涂 维护起来麻烦的很 所以更是转到博客园去了 但是 但是 随着工作的事情越
  • C# webBrowser

    webBrowser功能 10 屏蔽脚本错误 将WebBrowser控件ScriptErrorsSuppressed设置为True即可 webBrowser1 ScriptErrorsSuppressed true HtmlElementC
  • ubuntu制作开机自启动service

    我们在使用java时 常常需要把jar包设置为开机自启动 保证机器在断电重启后仍然能正常的执行jar提供的服务 在部署再ubuntu系统中的操作过程如下 1 上传jar到指定的路径下 如上传到 home test jarTest test
  • Markdown操作——代码块内如何添加代码块+如何引用代码块符号

    目录 例子 尝试 用途 例子 以引用Markdown的数学公式为例 预览 E mc 2 这是个数学公式 但是想打出源代码 比如说想介绍一下这个代码的使用 的时候却不知道该怎么操作了 其实有的人想到了 直接在外面再加上 那就可以了吧 备注 c
  • Mysql实战详解15:mysql错误Please use SHOW DDL to check it, and then recover or rollback it

    4644 129f3d45d0265000 100 64 106 105 3306 common counter ERR CODE TDDL 4644 ERR PENDING DDL JOB EXISTS Another DDL job 1
  • 重磅!中国网络空间安全协会发布《2020年中国网络安全产业统计报告》

    6月29日 中国网络空间安全协会 以下简称 协会 发布了 2020年中国网络安全产业统计报告 以下简称 报告 共有4000余人出席线上发布会 报告 对国内绝大多数具备网络安全技术和产品自有研发能力的网络安全企业进行了梳理 统计和分析 力图全
  • ASP.NET页面之间传值的五种常用方法

    1 使用QueryString变量 QueryString是一种非常简单的传值方式 他可以将传送的值显示在浏览器的地址栏中 如果是传递一个或多个安全性要求不高或是结构简单的数值时 可以使用这个方法 但是对于传递数组或对象的话 就不能用这个方