ASP.NET跨页面传值技巧总结

1. 使用QueryString变量 QueryString是一种非常简单的传值方式,他可以将传送的值显示在浏览器的地址栏中。如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法。但是对于传递数组或对象的话,就不能用这个方法了。下面是一个例子: 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对象的作用范围是整个全局,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。

a.aspx的C#代码:

1 private void Button1_Click(object sender, System.EventArgs e)
2 {
3 Application["name"] = Label1.Text;
4 Server.Transfer("b.aspx");
5 }

b.aspx中C#代码:

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

3. 使用Session变量 想必这个肯定是大家使用中最常见的用法了,其操作与Application类似,作用于用户个人,所以,过量的存储会导致服务器内存资源的耗尽。 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是存放在客户端的,而session是存放在服务器端的。而且Cookie的使用要配合ASP.NET内置对象Request来使用。a.aspx的C#代码 :

1 private void Button1_Click(object sender, System.EventArgs e)
2 {
3 HttpCookie cookie_name = new HttpCookie("name");
4 cookie_name.Value = Label1.Text;
5 Reponse.AppendCookie(cookie_name);
6 Server.Transfer("b.aspx");
7 }

b.aspx中C#代码:

private void Page_Load(object sender, EventArgs e)
{
string name;
name = Request.Cookie["name"].Value.ToString();
}

5. 使用Server.Transfer方法 这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。 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 }

 

转载于:https://www.cnblogs.com/rocblog/archive/2013/04/19/3030541.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/259836.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

RTMP协议中文翻译(首发)(转)

Adobe公司的实时消息传输协议 摘要 此备忘录描述了 Adobe公司的实时消息传输协议(RTMP),此协议从属于应用层,被设计用来在适合的传输协议(如TCP)上复用和打包多媒体传输流(如音频、视频和互动内容)。 目录 …

关卡 动画 蓝图 运行_UE4入门之路(基础蓝图篇):蓝图的制作

蓝图系统简介蓝图系统是UE4中十分有代表性的一个特点,所谓蓝图就是一种可视化的脚本。该系统非常灵活且非常强大,因为它为设计人员提供了一般仅供程序员使用的所有概念及工具。 程序员能够很方便的创建一个基础系统,并交给策划进一步在蓝图中…

overfitting(过度拟合)的概念

来自:http://blog.csdn.net/fengzhe0411/article/details/7165549 最近几天在看模式识别方面的资料,多次遇到“overfitting”这个概念,最终觉得以下解释比较容易接受,就拿出来分享下。 overfittingt是这样一种现象:一个…

虚拟串口服务器zenetmanager,Avocent服务器/串口管理 KVM

MergePoint Unity交换机在单个设备中结合了 KVM over IP和串行控制台管理技术。这项独特的结合为IT管理员提供了用于访问和控制服务器、网络设备及其他数据中心和分支办公室设备的完整远程管理解决方案。MergePoint Unity交换机直接与物理KVM、USB和串行端口进行安全的远程带外…

KAFKA分布式消息系统

Kafka[1]是linkedin用于日志处理的分布式消息队列,linkedin的日志数据容量大,但对可靠性要求不高,其日志数据主要包括用户行为(登录、浏览、点击、分享、喜欢)以及系统运行日志(CPU、内存、磁盘、网络、系统…

jar打包 剔除第三方依赖以及它的依赖_面试官:为什么Spring Boot的jar可以直接运行?...

来源:Gormats Notesfangjian0423.github.io/2017/05/31/springboot-executable-jar/Spring Boot Loader抽象的一些类JarLauncher的执行过程关于自定义的类加载器LaunchedURLClassLoaderSpring Boot Loader的作用SpringBoot提供了一个插件spring-boot-maven-plugin用…

CQRS架构图

2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/darkness/blog/814243

SQLite中不支持的sql语法

今天很自然的在写Sql语句的时候用了Top,一开始没发现问题,因为我从数据库读出的值正好是0,而我习惯变量定义的时候也都赋值0,可是到我不要0的时候我就发现问题了。后来才知道,可爱的小sqlite竟然有不支持的sql语法。 看…

Analyzer普通用户登录不了[从网络访问此计算机]

问题: 最近客户诺奇反映说Analyzer普通用户登录不了,但是发现管理员又可以登录,几经周折发现原来是系统的本地安全策略设置了不让远程使用本地账户密码登录系统导致。解决方案: 修改本地安全策略的“从远程访问此计算机”中的用户…

金蝶系统服务器要求,金蝶服务器安装及其相关要求.doc

K/3WISE创新管理平台 V12.2标准部署环境说明目录1. 多语言部署规则21.1 客户端多语言部署规则21.2 中间层多语言部署规则31.3 数据库多语言部署规则31.4 人力资源、管理门户、CRM多语言部署规则41.5 Citrix远程接入多语言部署规则42. 多语言部署架构图52.1 简体中间层52.2 繁体…

源码 移植_FreeModbus移植总结

modbus是一项工业上经常用到的通讯协议,而freemodbus是一款开源的从机协议栈。关于它的移植网上已经有了很多的文章,但是大多都只是针对其中部分问题的表述。本文将会把自己在移植freemodbus过程中遇到的问题以及freemodbus的源码分析尽量表述清楚。&…

expect脚本的简单应用

expect是一个用来处理交互的命令。借助于expect我们可以把交互过程写在一个脚本上,使之自动化完成。expect最核心的四个命令:send:用于向进程发送字符串 except:从进程接收字符串 spawn:打开一个新的进程 interact:保持交互的状态首先一个简单…

ajax中datatype是json,dataType:'json'vs data:$ .ajax中的JSON.stringify(obj)

我有这个数据结构:var formValues {TemporaryToken: a.userStatus.get("TemporaryToken"),MemorableWordPositionAndValues:[{Position: a.userStatus.get("MemorableWordPositions")[0],Value: this.$([name"login-memorable-character-…

sqlserver 查询中使用Union或Union All

在 程序人生网站上 看到了 这篇文章 就收藏了 哈 http://www.ourcodelife.com/article-415-1.html 首先,在程序人生网站上,需要负责任的指出的是在SQL Server查询中使用Union或Union All后Order by排序无效,我不确认是不是微软的bug&#xf…

word标题大纲级别_快速按标题层级把Word转Excel—附详细操作步骤

如何快速把层级分明的word文档转换成横向从属结构的excel表格一、问题描述文档如下图所示。文档一共三个层次,大纲级别分别是1、2、3级,左则是其文档结构图,可以看出文档层级分明。最终要将文档转换成如下横向从属结构的表格。一个层次的内容…

生成GUID唯一值的方法汇总(dotnet/javascript/sqlserver)

一、在 .NET 中生成1、直接用.NET Framework 提供的 Guid() 函数,此种方法使用非常广泛。GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的任何两台计算机都不会生成重复的 GUID 值(即保证所有…

Thread.CurrentPrincipal HttpContext.Current.User

据说要这样写才稳妥 // This principal will flow throughout the request.VoyagerPrincipal principal new VoyagerPrincipal(yada, yada, yada); // Attach the new principal object to the current HttpContext objectHttpContext.Current.User principal; // Make sure …

江森系统设置服务器日期,江森自控METASYS操作手册

? Alarm? Trend显示窗口中的按钮编号 A B按钮说明允许您编辑所示项目的属性。选择Save按钮可保存修改。 显示这个窗口中以前显示过的内容。每个窗口最多可显示5个历史项目。显示已保存的下一个窗口中的内容。锁定选中的显示窗口(防止被其他拖拽来的项目覆盖)。您可调整被锁定…

servlet中getWriter和getOutputStream的区别

getWriter();getOutputStream();区别:1、getWriter()用于向客户机回送字符数据2、getOutputStream()返回的对象,可以回送字符数据,也可以回送字节数据(二进制数据)如何选择:若果我们回送字符数据&#xff0…

execve系统调用_张凯捷—系统调用分析(3) (基于最新Linux5.0版本系统调用日志收集系统)...

在上一篇文章《系统调用分析(2)》中介绍和分析了32位和64位的快速系统调用指令——sysenter/sysexit和syscall/sysret,以及内核对快速系统调用部分的相关代码,并追踪了一个用户态下的系统调用程序运行过程。本篇中将基于最新的Linux-5.0内核,…