Asp.Net页面传值的方法简单总结【原创】
1、QueryString
当页面上form按照get的方式向页面发送请求数据的时候,web server会将请求数据放入
一个QEURY_STRING的环境变量中,然后通过QeueryString方法从这个变量中获取相应的参数。
例如:
发送参数页面Test1.aspx 按钮单击代码:
string url = "Test2.aspx?id="+ txtId.Text;
Response.Redirect(url);
接收参数页面 Test2.aspx
后台代码获取:string id=Request.QueryString["id"];
优点:使用比较简单
缺点:安全性低,参数直接暴露在url上,并且不能传递对象。
2、Session
把需要传的值放在Session变量中,然后在另外一个变量中使用它,session存放在服务器端,
在Session变量中存储过多的变量,会消耗较多的服务器资源,所以要及时清理不需要的Session变量。
优点:能传递复杂对象,数据量大小不限制
缺点:作为全局变量,容易误操作。
用法:
Session["id"]= txtId.Text;
在接收页面调用:string id=Session["id"].ToString();
3、Application
Application在整个应用程序生命周期都是有效的,类似于使用全局变量,是所有的用户
共用的全局变量,session是单个用户独有的全局变量,Application一般用于记录用户
信息、统计在线人数等。
用法:
Application.Lock();
Application["id"]= txtId.Text;
Server.Transfer("Test2.aspx");
Application.UnLock();
在接收页面调用:string id=Application["id"].ToString();
4、Cookie
Cookie主要用于客户端保存用户的信息,比如登录信息,它通过HTTP头传递信息,只能
包含字符串的值,通过Request对象的Cookie集合可以获得浏览器所有的Cookie。
优点:使用简单,可以减轻服务器的负担,通过Cookie来保存用户的登录状态,实现记住
用户登录的功能。
缺点:被认为用来收集用户隐私而遭到批评,也可能被别人篡改、伪造登录信息。
用法:
Test1.aspx 按钮单击代码:
HttpCookie name =new HttpCookie("name1");
HttpCookieage = new HttpCookie("age1");
name.Value = txtName.Text;
age.Value = txtAge.Text;
Response.Cookies.Add(name);
Response.Cookies.Add(age);
Server.Transfer("Test2.aspx");
Test2.aspx 按钮单击代码:
TextBox1.Text = "姓名是:" +Request.Cookies["name1"].Value.ToString() + "年龄是:" +Request.Cookies["age1"].Value.ToString();
5、Server.Transfer
Server.Transfer 是一个很奇特的方法。当使用 Server.Transfer 方法重定向页面时,
虽然页面也会被重定向至指定页,但是并不会在浏览器的URL上体现出来,并且若重定
向的页面后有参数,也不会显示在浏览器的URL上。
优点:直接在服务器端重定向,使用简单方便,减少了客户端对服务器端提出请求;
缺点:客户端浏览器中的URL地址是不改变,会导致在新的页面可能出现一些意想不到的问题。
比如如果源页面和目的页面不在同一个虚拟目录或其子目录下,那么使用相对路径的
图片、超链接都会导致错误的指向。可以传递各种数据类型的值和控件的值。
来源:我的公众号
Asp.Net页面传值的方法简单总结【原创】的更多相关文章
- Asp.net 页面传值的方法
ASP.NET页面传值的方法 From:Refresh-air 在面试的时候,经常会遇到这样的问题,其实我们会对其中的几种方法比较熟悉,因为项目中经常使用.但是要全面的回答ASP.NET中页面传值的方 ...
- ASP.NET页面传值的方法
ASP.NET页面传值的方法 From:Refresh-air 在面试的时候,经常会遇到这样的问题,其实我们会对其中的几种方法比较熟悉,因为项目中经常使用.但是要全面的回答ASP.NET中页面传值的方 ...
- ASP.NET页面传值不使用QueryString
ASP.NET页面传值不使用QueryString Asp.net中的页面传值方法: 1 Url传值 特点:主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在浏览器的地址 ...
- ASP.NET页面传值的几种方式
页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值. 存储对象传值.ajax.类.model.表单等!下面欧柏泰克和大家一起来看看asp.net页面传值方式一般有哪些?常用的较简单 ...
- ASP.Net页面传值比较
ASP.Net页面传值比较 作为一个ASP.Net程序员,尤其是搞B/S开发的,对于不同页面之间变量值的传递用的非常广泛,而掌握不同方式之间的区别和特点也就很有必要.本文将针对这一知识点做一个简单 ...
- ASP.NET页面传值与跳转
asp.net页面传值的五种方法:QueryString,Session,Application,Request.Cookies,Server.Transfer 其中Cookie和Server.Tra ...
- Struts2中在Action里面向前端页面传值的方法总结
由于在Action中并不能直接诶访问Servlet API,但它提供了相关类ActionContext来访问HttpServletRequest.HttpSession和ServletContext, ...
- net面试 ASP.NET页面传值的各种方法和分析 (copy)
Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留.在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题 ...
- webform 页面传值的方法总结
ASP.NET页面之间传递值的几种方式 页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有Quer ...
随机推荐
- Dubbo的使用简介
Dubbo是什么 官方定义 DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000, ...
- [编织消息框架][消息服务]jmx
JMX(Java Management Extensions,即Java管理扩展)是一个为应用程序.设备.系统等植入管理功能的框架,使用的是RMI技术. 比较经典的应用jdk bin目录下 jcons ...
- 【转载】stm32的GPIO八种工作模式
一.推挽输出:可以输出高.低电平,连接数字器件:推挽结构一般是指两个三极管分别受两个互补信号的控制,总是在一个三极管导通的时候另一个截止.高低电平由IC的电源决定. 推挽电路是两个参数 ...
- 【Vue 入门】使用 Vue2 开发一个展示项目列表的应用
前言 一直没有找到一个合适的展示个人项目的模板,所以自己动手使用 Vue 写了一个.该模板基于 Markdown 文件进行配置,只需要按一定规则编写 Markdown 文件,然后使用一个 在线工具 转 ...
- 新型钓鱼手段预警:你看到的 аррӏе.com 真是苹果官网?
研究人员发现一种"几乎无法检测"的新型钓鱼攻击,就连最细心的网民也难以辨别.黑客可通过利用已知漏洞在 Chrome.Firefox 与 Opera 浏览器中伪造显示合法网站域名(例 ...
- http接口加密《一》:移动应用中,通过在客户端对访问的url进行加密处理来保护服务器上的数据
来源:http://meiyitianabc.blog.163.com/blog/static/10502212720131056273619/ 我认为,保护服务器端的数据,有这么几个关键点: 不能对 ...
- 蓝桥杯-比酒量-java
/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...
- 安装配置sentry服务
环境 系统环境:Centos6.7 Hadoop版本:CDH5.10 jdk版本:jdk7 注:本文并未集成kerberos组件 安装Sentry Server 选择安装hive的节点进行安装测试: ...
- win10 64位下装Virtual Box安装Linux(centOS)配置联网
第一步:安装VritualBox 百度"VritualBox"下载安装即可: 第二步:下载Linux镜像系统并安装 这里写出我参照的博客,很详细,我就不累赘了! 原文地址:http ...
- [ERR] Node 172.168.63.202:7001 is not empty. Either the nodealready knows other nodes (check with CLUSTER NODES) or contains some
关于启动redis集群时: [ERR] Node 172.168.63.202:7001 is not empty. Either the nodealready knows other nodes ...