在实现页面跳转的时候,有些人喜欢用Response.Redirect,而有些人则喜欢用Server.Transfer。大部分时间似乎这两种方法都可以实现相同的功能,那究竟有区别吗?

查了些文档,发现两者区别还是很明显的。根本上,Response是叫浏览器去重新转向到指定的网页,而Server自然是发生在服务器端为主了,因此会有以下区别:

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

======================================

ransfer: 
可靠编程 
转移的目标页应是同一应用程序中的另一 Web 窗体页(.aspx 页)。不能使用 Server.Transfer 重定向到 .asp 或 .asmx 页。

确保目标页存在。

因为 Server.Transfer 是在服务器上执行的,所以浏览器没有页更改的记录。因此,如果用户刷新此页,则可能会产生意外的结果。

Redirect: 
可靠编程 
Redirect 方法是通过浏览器执行的,因此在服务器和浏览器之间产生额外的往返过程。

确保目标页存在。 
安全性 
由于该方法是通过客户端执行的,所以容易被欺骗和篡改。

==========================================

Server.Transfer跳转页面的状态与Response.Redirect类似。 
但是它们之间还是有一些差别的。

首先,用Server.Transfer迁移到另一个页面保持着服务资源。 
而不是简单的通知浏览器服务端换了个页面并迁移请求。这 
意味着你不需要携带更多的Http请求,因此可以减轻服务端的 
压力而使你的应用运行得更快。

但是,注意:因为"Transfer"过程只能在那些在同一服务端的 
站点上,你不能使用Server.Transfer使用户跳转到外部的站点。 
这点只有Response.Redirect能做到。

第二,Server.Transfer维持着浏览器原始的URL,这对于流线 
型的数据入口技术,虽然它有可能导致调试的时候的数据混乱

还有,Server.Transfer方法还有二个参数的重载方法—— 
"preserveForm"如果你将其设置为True(默认情况是False), 
使用一个状态比如:Server.Transfer("WebForm2.aspx", True), 
现存的请求字符串和所有的Form里的变量将被保持并提交到你的 
目标页。

但是必须注意的是,这里有一个奇怪的Bug(微软为什么有这样 
的Bug)。当你使用两个参数的重载方法试图迁移form和请求字符 
串的时候会有可能产生错误。

非官方的解决办法是将要被跳转的画面的enableViewStateMac 
的属性设置为 True , 然后再设回 False.

Server的Transfer和Response的Redirect的更多相关文章

  1. 1. Server.Transfer和Response.Redirect

    今天在使用ServerTransfer和Response.Redirect定位到当前页面来实现刷新页面时,发现了一些现象: 1.使用Response.Redirect刷新本页面,造成当前页面显示的数据 ...

  2. Server.Transfer VS Response.Redirect – Simplified

    https://www.codeproject.com/Articles/775221/Server-Transfer-VS-Response-Redirect-Simplified Introduc ...

  3. ASP.NET页面传值之Server.Transfer 和Response.Direct

    先看实例: B.apsx:         public string TextBox1Text         {             get             {             ...

  4. 502 Proxy Error The proxy server received an invalid response from an upstream server

    Proxy Error The proxy server received an invalid response from an upstream server. The proxy server ...

  5. tengine2.2.3报错502的The proxy server received an invalid response from an upstream server问题处理

    tengine2.2.3报错502的The proxy server received an invalid response from an upstream server问题处理 现象:访问订单的 ...

  6. How To Configure SAMBA Server And Transfer Files Between Linux & Windows

    If you are reading this article it means you have a network at home or office with Windows and Linux ...

  7. Server.Transfer 和 Response.Redirect 用法区别

    在ASP.NET中,在后台传值方式目前大多都是用 Response.Redirect("页面地址") 来重定向页面的,但是现在还有一种方式也可以达到重定向页面的作用,而且在某些时刻 ...

  8. Server Transfer()和Response.Redirect()的使用

    一.Server Transfer() Server.Transfer:对于当前请求,终止当前页的执行,并使用指定的页url路径来开始执行一个新页. 1. Server.Transfer只能够转跳到本 ...

  9. Server.Transfer和Response.Redirect区别

    根本上,Response是叫浏览器去重新转向到指定的网页,而Server自然是发生在服务器端为主了,因此会有以下区别:1. Server.Transfer只能够转跳到本地虚拟目录指定的页面,而Resp ...

随机推荐

  1. mog使用指南

    mog使用指南 mgo简介 mgo(音mango)是MongoDB的Go语言驱动,它用基于Go语法的简单API实现了丰富的特性,并经过良好测试. 官方网站:http://labix.org/mgo. ...

  2. php 导出 Excel 报错 exception 'PHPExcel_Calculation_Exception' with message

    exception 'PHPExcel_Calculation_Exception' with message '粉丝数据!C2679 -> Formula Error: Operator '= ...

  3. hdu_5831_Rikka with Parenthesis II(模拟)

    题目链接:hdu_5831_Rikka with Parenthesis II 题意: 给你一些括号的排列,必须交换一次,能不能将全部的括号匹配 题解: 模拟一下括号的匹配就行了,注意要特判只有一对括 ...

  4. MATLAB制作符合IEEE标准的图插入Latex

    1.MATLAB最好保存为eps格式,虽然IEEE也支持png等其他格式,但是MATLAB在保存为png格式时,很容易在后期插图时,出现分辨率不足等问题. 2. MATLAB在save as图片的时候 ...

  5. MVC3+EF4.1学习系列(六)-----导航属性数据更新的处理

    通过上一篇的学习 我们已经知道怎么查询关系 这篇就来说说怎么导航属性数据更新时的处理 以及EF又会为我们生成哪些SQL~ 老规矩 先看下今天的图 添加和修改页面基本就是这样 这节的内容相对简单~~ 主 ...

  6. python 列表、字典的方法

    # 列表最后新增元素 li = [11, 22, 33] print(li) li.append(44) # 对原列表最后增加一个元素 print(li) 执行如下: [11, 22, 33][11, ...

  7. Openjudge-计算概论(A)-放苹果

    描述: 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法.输入第一行是测试数据的数目t(0 <= t < ...

  8. Vagrant常用命令

    Vagrant常用命令 Vagrant的几个命令: vagrant box add 添加box的操作 vagrant init 初始化box的操作 vagrant up 启动虚拟机的操作 vagran ...

  9. [NPOI2.0] 使用NPOI读取和导出Excel文件

    先来说下一直使用的 Microsoft.Office.Interop.Excel ,在系统正式使用时遇到的问题 1:Excel读取数据BUG 由于使用Microsoft.Office.Interop. ...

  10. sql 生成开始日期到结束日期与开始日期的相差天数

     SELECT    CONVERT(VARCHAR(10), DATEADD(dd, number, '2015-10-25'), 120) AS dtDate          FROM      ...