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 ...
随机推荐
- Linux 系统管理06--磁盘管理
Linux系统管理06——磁盘管理 一.磁盘结构 1.硬盘的物理结构 盘片:硬盘有多个盘片,每个盘片2面 磁头:每面一个磁头 2.硬盘的数据结构 扇区:盘片被分为多个扇形区域,每个扇形区存放512字节 ...
- php curl 访问 https站点
$uri = "https://your_website"; $ch = curl_init (); $data=I('post.'); curl_setopt ( $ch, CU ...
- xmlplus 组件设计系列之八 - 分隔框(DividedBox)
分隔框(DividedBox)是一种布局类组件,可以分为两类,其中一类叫水平分隔框(HDividedBox),另一类叫垂直分隔框(VDividedBox).水平分隔框会将其子级分为两列,而垂直分隔框则 ...
- 浅析如何在Nancy中生成API文档
前言 前后端分离,或许是现如今最为流行开发方式,包括UWP.Android和IOS这样的手机客户端都是需要调用后台的API来进行数据的交互. 但是这样对前端开发和APP开发就会面临这样一个问题:如何知 ...
- cmd第一次推送github
echo off for %%i in ("%cd%") do set "name=%%~ni" git init git remote add origin ...
- JAVA控制台版斗地主
一.核心思路: 1.首先分析流程: A>B>C>A>B>C>A>B>C 等于 while(true){ A>B>C } 然后完善细节 发牌 ...
- poj1269计算几何直线和直线的关系
We all know that a pair of distinct points on a plane defines a line and that a pair of lines on a p ...
- Android自定义评分控件:RatingStarView
RatingStarView Android自定义的评分控件,类似ProgressBar那样的,使用星星图标(full.half.empty)作为progress标识的评分/打分控件. 效果图 图1: ...
- Java AOP (2) runtime weaving 【Java 切面编程 (2) 运行时织入】
接上一篇 Java AOP (1) compile time weaving [Java 切面编程 (1) 编译期织入] Dynamic proxy 动态代理 Befor talking abou ...
- Mysql求百分比
根据相应条件抽出相应count数(myCount) 抽出总count数(totalCount) 计算百分比:myCount / totalCount * 100 四舍五入:使用ROUND函数ROUND ...