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 ...
随机推荐
- CPP--借助神器VS理解内存存储
之前也有想了解这些,第一个不是学底层的不知道从何理解,第二个上网搜概念,大牛们三言两语就结束了,举得例子也比较复杂,对于非C方向的可能有点吃力,所以一直没理解. 今天偶然发现原来还要内存窗口之说,就慢 ...
- UITableView grouped样式使用探索
UITableView的style有plain和grouped两种样式,两种样式各有不同的风格和功能,plain样式已经封装好了悬停功能,gouped样式则为我们在区头和区尾在实际项目开发中需要我们选 ...
- 进程间通信系列 之 socket套接字实例
进程间通信系列 之 概述与对比 http://blog.csdn.net/younger_china/article/details/15808685 进程间通信系列 之 共享内存及其实例 ...
- 推荐免费的svn空间
可能大部分人跟我一样办公和其他环境的代码同步选择用github,但github免费用户的代码是公开的.如果想做商业项目,用免费的github账号就不合适了,这里推荐的免费svn是个不错的选择. 1.h ...
- linux系统资源限制
概述 拜读了小Y对ora-7445问题的解读,猛然惊醒发现自己对oracle运行在linux上的资源限制一直是朦朦胧胧的,以此文章督促自己深入了解. 1 limits.conf 和sysctl.con ...
- jdbc连接数据库工具包模板
jdbc连接数据库操作 jdbc连接数据库模板,收藏可做模板使用(小型工程,一般大工程都会用框架,c3p0等连接,不考虑此种方法!). 配置文件的使用(使用配置文件可以使我们后期的修改更加方便,当然, ...
- 浅谈Web的流量控制
想聊一聊流量控制,谈谈的重要性,解决了哪些业务问题,那我们问题来进入正题. 1.WEB容器如何流量控制? 一个Tomcat的容器,这个容器呢,部署在一台服务器上面,同时这台服务器的资源非常非常 ...
- 55 Jump Game i && 45 Jump Game ii
Jump Game Problem statement: Given an array of non-negative integers, you are initially positioned a ...
- IOS中常用的UIColor
UIColor + (UIColor *)blackColor; // 0.0 white 黑色 + (UIColor *)darkGrayColor; // 0.333 white 深灰色 + (U ...
- HTML基础知识入门
好的,我们开始吧,打开Eclipse,新建一个项目,就叫做Base吧,基础班的意思.注意哦,要建一个JavaWeb项目.右键,new,Dynamic Web Project,如果出来的菜单项没有,就点 ...