ASP.NET中Server.Transfer用法

软考-高级-信息系统项目管理第四版(完整24章全笔记) 包 括:信息系统、业务应用信息系统、信息安全系统、信息系统工程、业务应用信息系统工程和 信息安全系统工程等业务应用信息系统是支撑业务运营的计算机应用信息系统,信息安全系统工程是指为了达到建设好信息安全系统的特殊需要而组织实施的工程。项目经理由执行组织委派, 负责领导团队实现项目目标。①制定项目章程:②制订项目管理计划:③指导与管理项目工作:④管理项目知识:⑤监控项目工作:⑥实施整体变更控制:项目范围管理过程包括:规划范围管理;收集需求;定义范围;创 建WBS;确认范围;控制范围; 阅读详情
首先,Response是叫浏览器去重新转向到指定的网页,而Server自然是发生在服务器端为主了,因此会有以下区别: 


1. Server.Transfer只能够转跳到本地虚拟目录指定的页面,而Response.Redirect则十分灵活; 
2. Server.Transfer可以将页面参数方便传递到指定页面; 
3. 使用时,Server.Transfer跳到别的页面后,浏览器显示的地址不会改变,有时反而会造成误会,当然也有些场合需要这样的效果; 
4. Server.Transfer可以减少客户端对服务器的请求; 


补充一下,Response.Redirect()需要在服务器和客户端往返两次 


而Server.Transfer()在服务器端一次通信即可 


使用Server.Transfer后,转向后的页面可以使用前一个页面的参数,有时候确实比较方便


如果你用的是Server.Transfer,是不可能显示目标URL的,因为浏览器对着一无所知。


如果你在A.aspx里面执行Server.Transfer("~/B.aspx"),实际相当于A.aspx告诉ASP.NET处理引擎,你帮我执行B.aspx吧,然后把结果给我,我再给用户。因此浏览器还是以为自己获取的是A.aspx,而实际上服务器帮A.aspx执行了B.aspx。








在两个ASP.NET页面之间传递值
引言
  ASP.NET提供了卓越的事件驱动编程模型,让开发者简化了应用程序的总体设计,但是这个也造成了它固有的一些问题,例如,使用传统的ASP里,我们可以通过使用POST方法很容易地实现页面间传递值,同样的事情,在使用事件驱动编程模型的ASP.NET就不是那么容易了,当然了,我们仍然有一些方法可以实现同样的功能。本文将试着使用不同的可能的方法来解决这个问题,但可以预见是,本文将包含使用querystring,session变量以及server.Transfer方法来实现页面间的值传递。
使用QueryString
使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在浏览器的地址栏上的(不安全),同时又不能传递对象,但是在传递的值少而安全性要求不高的情况下,这个方法还是一个不错的方案。使用这种方法的步骤如下:
1,使用控件创建web表单(form)
2,创建可以返回表单的按钮和链接按钮
3,在按钮或链接按钮的单击事件里创建一个保存URL的字符变量
4,在保存的URL里添加QueryString参数
5,使用Response.Redirect重定向到上面保存的URL
下面的代码片断演示了如何实现这个方法:
  源页面代码:
private void Button1_Click
(object sender, System.EventArgs e)
{
 string url;
 url="anotherwebform.aspx?name=" + TextBox1.Text + "&email=" + TextBox2.Text;
 Response.Redirect(url);
}
 目标页面代码:
 private void Page_Load
(object sender, System.EventArgs e)
{
 Label1.Text=Request.QueryString["name"];
 Label2.Text=Request.QueryString["email"];
}


使用Session变量
  使用Session变量是可以在页面间传递值的的另一种方式,在本例中我们把控件中的值存在Session变量中,然后在另一个页面中使用它,以不同页面间实现值传递的目的。但是,需要注意的是在Session变量存储过多的数据会消耗比较多的服务器资源,在使用session时应该慎重,当然了,我们也应该使用一些清理动作来去除一些不需要的session来降低资源的无谓消耗。使用Session变量传递值的一般步骤如下:
1,在页面里添加必要的控件
2,创建可以返回表单的按钮和链接按钮
3,在按钮或链接按钮的单击事件里,把控件的值添加到session变量里
4,使用Response.Redirect方法重定向到另一个页面
5,在另一个页面提取session的值,在确定不需要使用该session时,要显式清除它
下面的代码片断演示了如何实现这个方法:
   源页面代码:
private void Button1_Click
(object sender, System.EventArgs e)
{
 //textbox1 and textbox2 are webform
 //controls
 Session["name"]=TextBox1.Text;
 Session["email"]=TextBox2.Text;
 Server.Transfer("anotherwebform.aspx");
}
  目标页面代码:
private void Page_Load
(object sender, System.EventArgs e)
{
 Label1.Text=Session["name"].ToString();
 Label2.Text=Session["email"].ToString();
 Session.Remove("name");
 Session.Remove("email");
}
使用Server.Transfer
  这个方法相比上面介绍的方法稍微复杂一点,但在页面间值传递中却是特别有用的,使用该方法你可以在另一个页面以对象属性的方式来存取显露的值,当然了,使用这种方法,你需要额外写一些代码以创建一些属性以便可以在另一个页面访问它,但是,这个方式带来的好处也是显而易见的。总体来说,使用这种方法是简洁的同时又是面向对象的。使用这种方法的整个过程如下:
1,在页面里添加必要的控件
2,创建返回值的Get属性过程
3,创建可以返回表单的按钮和链接按钮
4,在按钮单击事件处理程序中调用Server.Transfer方法转移到指定的页面
5,在第二个页面中,我们就可以使用Context.Handler属性来获得前一个页面实例对象的引用,通过它,就可以使用存取前一个页面的控件的值了
以下代码综合实现上述步骤过程的代码:
  源页面代码:
    把以下的代码添加到页面中
   public string Name
{
 get
 {
 return TextBox1.Text;
 }
}
public string EMail
{
 get
 {
 return TextBox2.Text;
 }
}
  然后调用Server.Transfer方法
private void Button1_Click
(object sender, System.EventArgs e)
{
 Server.Transfer("anotherwebform.aspx");
}
   目标页面代码:
在anotherwebform.aspx中务必在第一句话添加
<%@ Reference Page="~/GCSetting.aspx" %>
然后在anotherwebform.aspx.cs中添加如下。


private void Page_Load
(object sender, System.EventArgs e)
{
 //create instance of source web form
 WebForm1 wf1;
 //get reference to current handler instance
 wf1=(WebForm1)Context.Handler;
 Label1.Text=wf1.Name;
 Label2.Text=wf1.EMail;
}
华为OD机试真题 新系统 【社交网络相同爱好好友查询】 华为od机试真题 新系统【社交网络相同爱好好友查询】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为od机试真题【社交网络相同爱好好友查询】多语言题解实现。 阅读详情

相关推荐

海康工业相机SDK+OpenCV实战:图像采集与Mat格式转换优化指南

本文深入探讨了如何高效利用海康工业相机SDK与OpenCV进行图像采集与处理。重点解析了从相机RawData到OpenCV Mat格式转换的核心优化技巧,包括像素格式匹配、内存零拷贝管理以及彩色图像BGR/RGB转换,旨在解决工业应用中常见的性能瓶颈与内存问题,构建稳定高效的图像处理流程。

weixin_29192211的博客 108

ASP.NET中Server.Transfer用法(详细)

1. Server.Transfer只能够转跳到本地虚拟目录指定的页面,而Response.Redirect则十分灵活; 2. Server.Transfer可以将页面参数方便传递到指定页面; 3. 使用时,Server.Transfer跳到别的页面后,浏览器显示的地址不会改变,有时反而会造成误会,当然也有些场合需要这样的效果; 4. Server.Transfer可以减少客户端对服务器的请求;

微微的猪食小窝 1329

速腾RS-LiDAR-16激光雷达ROS配置全攻略:从硬件连接到Rviz点云可视化

本文详细介绍了速腾RS-LiDAR-16激光雷达在ROS环境中的配置与使用全攻略,涵盖硬件连接、网络配置、ROS驱动安装及Rviz点云可视化等关键步骤。通过实战案例和技术解析,帮助开发者快速实现激光雷达数据采集与处理,提升机器人感知系统的部署效率。

ooo22的博客 249

在两个ASP.NET页面之间传递值

                                                     在两个ASP.NET页面之间传递值引言  ASP.NET提供了卓越的事件驱动编程模型,让开发者简化了应用程序的总体设计,但是这个也造成了它固有的一些问题,例如,使用传统的ASP里,我们可以通过使用POST方法很容易地实现页面间传递值,同样的事情,在使用事件驱动编程模型的ASP.NET就不是

kwklover 4416

海康威视 2DC 系列球机手机直连实用教程

海康威视2DC系列球机手机直连教程:首先确认设备支持直连功能并下载官方"海康互联"App;通过网线连接球机与路由器,使用SADP软件调整IP至同一网段;在App中添加设备并激活,完成调试即可远程查看监控画面。常见问题包括部分型号需远程解锁、网络连接异常等,可通过检查网络环境、联系客服等方式解决。本教程提供从准备到连接的完整指引,助您轻松实现手机监控管理。

海康威视技术支持 5405

使用 DeepSeek 配合 即梦AI 生成视频的详细教程

访问即梦AI官网,选择“AI作图”功能,将DeepSeek生成的提示词逐条粘贴至输入框,选择适配的模型(如“通用XL Pro”)和参数(如画幅比例、风格强度)1113。“我要制作一个关于普洱茶文化的宣传视频,请设计一个30秒的脚本,包含时间轴、画面描述、文案和分镜提示词,以表格形式输出。:云南古茶树群,清晨薄雾,金色晨光,露珠特写,国风山水画质感,16:9画幅,使用Nikon D850参数模拟513。:结合DeepSeek生成的知识点脚本与即梦AI的插画风格,制作科普动画211。

weixin_48995695的博客 3万+

C#面:Server.Transfer和Response.Redirect的区别

Server.Transfer是在服务器端进行页面跳转,不会向客户端发送响应,URL地址栏不会改变,跳转后的页面可以访问原始页面的上下文信息。Response.Redirect是在客户端进行页面跳转,会向客户端发送重定向响应,URL地址栏会改变,跳转后的页面无法访问原始页面的上下文信息。

那个那个鱼的博客 645

Ubuntu 24.04 极速部署 Dify:从零到一的保姆级实践

本文详细介绍了在Ubuntu 24.04系统上快速部署Dify的完整教程,从环境准备到部署验证,再到深度优化和安全加固,提供了一套保姆级的实践指南。通过使用Docker和Docker Compose,结合国内镜像源加速,帮助用户高效完成Dify的安装和配置,确保系统稳定运行。

weixin_42662293的博客 246

ASP.NET跨页面传值——Server.Transfer

ASP.NET跨页面传值 这个才可以说是面象对象开发所使用的方法,其使用Server.Transfer方法把流程从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方法是完全面象对象的,简洁有效。   Server.Transfer是从当前的ASPX页面转到新的ASPX页面,服务器端执行新页并输出,在新页面中通过Context.Handler来获得前一个...

diaomen1607的博客 399

N32串口DMA接收不定长数据:空闲中断与DMA通道的协同处理

本文详细解析了在N32系列MCU中,利用串口空闲中断与DMA通道协同处理不定长数据的核心机制与实战方法。通过剖析空闲中断的触发时机、DMA的配置要点以及两者协同工作的关键时序,提供了避免数据错乱的避坑指南和完整的代码实现,旨在帮助开发者构建高效、可靠的嵌入式串口通信子系统。

weixin_29191669的博客 123

linux系统下XDMA驱动的安装与测试问题总结

先看两个常见的问题。一个是驱动安装问题,一个是驱动测试错误;error 512 能识别PCIE的设备,但是The kernel modle installed correctly, but no devices were recognized.

whm128的博客 3802

网页跳转:Server的Transfer和Response的Redirect方法(总结)

摘抄自:http://hi.baidu.com/fmhyht/blog/item/e1208deffc4d3910fcfa3c27.html1、浏览器ASP文件请求->服务器执行->遇到response.redirect语句->服务器发送response.redirect后面的地址给客户机端的浏览器->浏览器请求执行新的地址2、浏览器ASP文件请求->服务器执行->遇到Server.Transfe

changyuming的专栏 3654

《C/C++等级考试(1~8级)历届真题解析》专栏总目录

中国电子学会《全国青少年软件编程等级考试》C/C++编程(1~8级)历届真题解析。订阅后可阅读专栏内所有真题解析,真题持续更新中!

人生就是一个不断学习的过程 2万+

[转]Response.End、Response.Redirect 或 Server.Transfer 方法与 ThreadAbortException 异常

源文:http://blog.csdn.net/hanzhongzheng/archive/2007/11/11/1878838.aspx 症状 如果使用 Response.End、Response.Redirect 或 Server.Transfer 方法,将出现 ThreadAbortException 异常。您可以使用 try-catch 语句捕获此异常。 原因 ...

andyywang2014的博客 154

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

ASP.NET十分有用的页面间传值方法

一、目前在ASP.NET中页面传值共有这么几种方式:1、表单提交,            ....   form1.submit();   ....   此种方在ASP。NET中无效,因为ASP。NET的表单总是提交到自身页面,如果要提交到别一页面,需要特殊处理。2、链接地址传送接收页面: string str = Request["param1"]3、Session共享发送页面:Sessio

stone0419的专栏 2809

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【ASP.NET学习笔记一】ASP.NET页面传参总结

ASP.NET页面传参总结 1.QueryString[] 优点:使用简单,对于安全性要求不高时传递数字和文本值非常高效。 缺点:安全性不高,参数值直接暴露在Url中,传递大小长度有限制,不能传递对象。 用法:A页面中构造Url: string url=”B.aspx?ID=1&name=’zhangsan’” Response.Re...

weixin_30384217的博客 63

android 客户端 汉字 传给 aspx 乱码,ASP.NET中Response.Redirect()方法深度剖析[转]

参考:ASP.NET中,服务器端重定向有三种方法1.Server.Transfer("newPage.aspx"):服务器停止解析本页,保存此页转向前的数据后,再使页面转向到newPage.aspx, 并将转向前数据加上newPage.aspx页结果返回给浏览器。2.Server.Execute("newPage.aspx");服务器保存此页转向前的数据后,使页面转向到newPage.aspx执行...

weixin_33238239的博客 170

菜鸟程序员总结笔记二 ASP.NET页面传参总结

菜鸟程序员总结笔记二 ASP.NET页面传参总结 1.QueryString[] 优点:使用简单,对于安全性要求不高时传递数字和文本值非常高效。 缺点:安全性不高,参数值直接暴露在Url中,传递大小长度有限制,不能传递对象。 用法:A页面中构造Url: string url=”B.aspx?ID=1&name=’...

weixin_30597269的博客 188

ASP.NET中页面传值方式

1.QueryString最简单的页面之间传值的方式,缺点是会把要传的值显示在浏览器的地址栏里,因此一般是传不重要而且简单的参数值!不能传递对象,参数的长度不能大于1024字节,当参数中有中文的时候,需要使用HttpUlitity.UrlEncode方法来对参数进行编码和解码!Default1:Response.Redirect("Default.aspx?a="参数值"");Defa

lzhen的专栏 602

asp.net中页面间传值方法

一、目前在ASP.NET中页面传值共有这么几种方式:1、表单提交, ....form1.submit();....此种方在ASP。NET中无效,因为ASP。NET的表单总是提交到自身页面,如果要提交到别一页面,需要特殊处理。2、链接地址传送接收页面: string str = Request["param1"]3、Session共享发送页面:Session("param1") = "1111";

流程管理软件 427

ASP.NET页面间传值

ASP.NET页面间传值 一、目前在ASP.NET中页面传值共有这么几种方式:1、表单提交,            ....   form1.submit();   ....   此种方在ASP。NET中无效,因为ASP。NET的表单总是提交到自身页面,如果要提交到别一页面,需要特殊处理。2、链接地址传送接收页面: string str = Request["param1"]3、Session

along1985的专栏 312

[ASP.net]Context的一些简单运用

取得服務器上的時間:Context.Timestamp------------------------------具體時間:Context.Timestamp.TimeOfDay.ToString()年月日:Context.Timestamp年份:Context.Timestamp.Year月份:Context.Timestamp.Month日期部份:Context.Timestamp.Date日

[橫渡] 1937

ASP.NET页面间传值方法

 一、目前在ASP.NET中页面传值共有这么几种方式:1、表单提交,         ....   form1.submit();   ....   此种方在ASP。NET中无效,因为ASP。NET的表单总是提交到自身页面,如果要提交到别一页面,需要特殊处理。2、链接地址传送接收页面: string str = Request["param1"]3、Session

coolen的专栏 659

【转】ASP.NET中页面传值

一、目前在ASP.NET中页面传值共有这么几种方式: 1、表单提交, <form action= "target.aspx" method = "post" name = "form1"><input name = "param1" value = "1111"/><input name = "param2" value = "2222"/> &...

weixin_34161064的博客 93
上一篇: IT行业怎么了?程序员按时上下班也被开除
下一篇: SVN的分支与合并功能详解
KimoGao
博客等级 码龄16年 180粉丝 82原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值