- 浏览: 62100 次
- 性别:
- 来自: 广州
文章分类
最新评论
1 、 Response.Redirect():
Response.Redirect 方法导致浏览器链接到 一个指定的 URL 。当 Response.Redirect() 方法被调用时,它会创建一个应答,应答头中指出了状态代 码 302 (表示目标已经改变)以及新的目标 URL 。浏览器 从服务器收到该应答,利用应答头中的信息发出一个对新 URL 的请求 。
这就是说,使用 Response.Redirect 方法时重定向操作发生在客户端 ,总共涉及到两次与服务器的通信(两个来回):第一次是对原始页面的请求,得到一个 302 应答,第二次是请求 302 应答中声明的新页面,得到重定向之后的页面。
2 、 Server.Transfer():
Server.transfer 是 IIS 5.0 新增加的一个功能。它解决了
Response.Redirect 的两个重要的缺陷:
1 )在 Response.Redirect 中,我们得不到任何第一页的输出
2 ) Response.Redirect 会丢失 request 中的所有属性
当然我们可以通过一些其他的办法,比如 session 来搞定,可是,有些页的参数是在 request 中传过来的,这样的话,就不行了
3) Response.Redirect 需要 client 端 再发起一个请求。
server.transfer 就很好地解决了这些问题。它是从 server 端直接向下一页发起请求,不需要 client 再次发送请求 .
如果你的网页非常依赖 response.redirect, 这个小小的改变可以提高将近 25% 的效率。(根据微软文档) .
Server.Transfer 方法把执行流程从当前的 ASPX 文件转到同一服务器上的另一个 ASPX 页面。调用 Server.Transfer 时,当前的 ASPX 页面终止 执行,执行流程转入另一个 ASPX 页面,但新的 ASPX 页面仍使用前一 ASPX 页面创建的应答流 。
如果用 Server.Transfer 方法实现页面之间的导航,浏览器中的 URL 不会改变 ,因为重定向完全在服务器端进行,浏览器根本不知道服务器已经执行了一次页面变换 。
默认情况下, Server.Transfer 方法不会把表单数据或查询字符串从一个页面传递到另一个页面,但只要把该方法的第二个参数设置成 True ,就可以保留第一个页面的表单数据和查询字符串 。
同时,使用 Server.Transfer 时应注意一点:目标页面将使用原始页面创建的应答流,这导致 ASP.NET 的机器验证检查( Machine Authentication Check , MAC )认为新页面的 ViewState 已被篡改 。因此,如果要保留原始页面的表单数据和查询字符串集合,必须把目标页面 Page 指令的 EnableViewStateMac 属性设置成 False 。
server.Transfer() 有一个不足就是 : 当用户在 a.aspx 中提交了一个表单 , 然后用 Server.Transfer() 进入 b.aspx ,这时如果用户刷新 一下页面,浏览器便会问用户是否“重试 ”发送表单,如果用户点击“是”,那么,表单中的数据被重新发送到服务器 。如发送表单的作用就是为了向数据库中插入一条记录,结果导不希望发生的事——同一表单被多次加入到数据库中。
3 、 Server.Execute
Server.Execute 方法允许当前的 ASPX 页面执行一个同一 Web 服务器上 的指定 ASPX 页面,当指定的 ASPX 页面执行完毕,控制流程重新返回原页面发出 Server.Execute 调用的位置 。
这种页面导航方式类似于针对 ASPX 页面的一次函数调用,被调用的页面能够访问发出调用页面的表单数据和查询字符串集合,所以要把被调用页面 Page 指令的 EnableViewStateMac 属性设置成 False 。
Server.Execute("another.aspx") 和 Server.Transfer("another.aspx") 区别 :
Execute 是从当前页面转移到指定页面 , 并将执行返回到当前页面
Transfer 是将执行完全转移到指定页面
总结:
在网络状态较好 的情况下 ,Redirect(url) 方法效率最高 !! 可重定向到同一台或非同一台 服务器上的 aspx 或非 aspx ( html )资源
Server.Transfer 方法和 Server.Execute 方法最灵活 !! 但只能转到同一 Application 目录下 ,也有可能导致不期望的结果发生
Server.Execute 方法占用资源最多 .
发表评论
-
C#中怎么判断一个数组中是否存在某个数组值 转
2011-10-20 10:02 2239C#中怎么判断一个数组中是否存在某个数组值 作者: 李嘉 ... -
C#开发和调用Web Service (转)
2011-08-12 22:43 11871.1 、 Web Service 基 ... -
profile 实现购物车 实例(二)(转)
2011-07-29 14:27 1058上个例子,我见了两个类,一个商品类。一个购物车类。并把购物 ... -
profile 实现购物车 实例(一)(转)
2011-07-29 14:25 1014首先要了解什么是Profile,不了解就查下资料跟MSDN ... -
Profile的简单的配置与操作(转)
2011-07-29 14:20 1053下面由我来给大家配置一个 Profile与 Profile ... -
Profile实现购物车(应用Profile)(转)
2011-07-29 14:15 1021上面我已经介绍过了 Profile的配置和简单应用了,如果大 ... -
浅析Microsoft .net PetShop程序中的购物车和订单处理模块(Profile技术,异步MSMQ消息)
2011-07-29 11:55 1404对于Microsoft .net PetShop程序中的购物车 ... -
大型网站访问性能处理(转集)
2011-07-28 14:14 1082高性能网站性能优化与系统架构(ZT) 说说大型高并发高 ... -
不使用DalFactory和IDAL,支持多种数据库应用
2011-07-27 23:23 2MS的PetShop示例应用程序的“多层架构”被很多.NET开 ... -
ASP.NET页面刷新方法总结(顺便散分)
2011-07-07 15:17 1198先看看ASP.NET页面刷新的实现方法: 第一: ... -
c#将对象序列化为字符串和将字符串反序列化为对象
2011-06-30 11:23 1578c#将对象序列化为字符串和将字符串反序列化为对象 a ... -
provider: SQL 网络接口, error: 26 解决方法 图
2011-06-03 10:06 6618在建立与服务器的连接时出错。在连接到 SQL Server 2 ... -
Server.Execute和#include相异之处
2011-05-17 13:37 728server 是 ASP 中的一个内置对象, 有一个方法为 ... -
win7下装不了vs2008的情况
2011-04-09 01:11 723vs2005与vs2008都是镜像文件 ,所以用了虚拟光驱,装 ... -
ASP.NET + SQL 分页存储过程以及对应的类
2011-03-21 16:57 1010ASP.NET + SQL 分页存 ... -
ASP.NET 错误页处理
2011-03-19 21:46 1009ASP.NET 提供三种用于在出现错误时捕获和响应错误的主 ... -
asp.net 伪静态 html 后面带参数
2011-03-16 21:22 2051例如:faq_1.html?id=2 相关设置请在网上 ... -
DataFormatString的使用
2011-01-05 09:16 884在 我们从业务逻辑层获得数据实体时候,接下来的事情就是要绑定 ... -
ASP.NET 伪静态 静态页 访问不了 方法
2010-12-31 11:14 2010本站基于asp.net+UrlRewriter来实现网站伪 ... -
五种常见的ASP.NET安全缺陷
2010-11-25 23:41 872保证应用程序的安全 ...
相关推荐
你可以使用下面的代码将用户引导到另一个页面: Response.Redirect(“WebForm2.aspx”) 或者 Response.Redirect(“http://www.cnnas.com/”) Server.Transfer 也是通过一条语句将用户引导到另一页面,比如:Server....
DTSExecResult result = package.Execute(null, null, options, null, null); // 检查执行结果 switch (result) { case DTSExecResult.Success: Console.WriteLine("Package execution completed ...
本文主要探讨了ASP.NET MVC框架中几种不同的页面重定向方法,包括Response.Redirect、Server.Transfer和Server.Execute,以及如何根据实际需求选择合适的方法。 1. Response.Redirect: Response.Redirect是客户端...
"Server.Execute"这个概念通常与ASP.NET相关,而不是WinForm,但在讨论中可能涉及到将ASP.NET的技术应用到WinForm的场景。在这里,我们将会探讨如何在WinForm应用中模拟服务器端执行的功能,以及相关的知识点。 1. ...
ASP.NET 编程知识 - Request, Response 与 Server 的使用 ASP.NET 是一个功能强大且流行的 Web 应用程序开发框架,它提供了许多内置对象和类来帮助开发者快速构建高效、灵活的 Web 应用程序。在 ASP.NET 中,...
本文主要总结了三种 ASP.NET 中的重定向方法:Server.Transfer、Server.Execute 和 Response.Redirect。 1. **Server.Transfer方法**: Server.Transfer方法在服务器端执行,它停止当前页面的处理并立即开始处理...
在ASP.NET中,常见的四种页面导航方式包括超级链接、Response.Redirect、Server.Transfer和Server.Execute。以下是对这四种方式的详细分析: 1. **超级链接**: 超级链接是最基础的导航方式,通过HTML的`<a>`标签...
本文将深入探讨四种主要的页面导航方式:超级链接、Response.Redirect、Server.Transfer和Server.Execute,分析它们的特点、优缺点以及适用场景。 一、超级链接 超级链接是最直观、最基础的页面导航方式。HTML中的`...
### ASP.NET中页面跳转的三种方法:Response.Redirect、Server.Transfer与Server.Execute 在ASP.NET开发过程中,页面跳转是一项非常常见的操作。根据不同的应用场景,可以选择不同的方式来实现页面跳转,主要有`...
本文将深入探讨ASP.NET中实现页面跳转的三种主要方法:`Response.Redirect`、`Server.Transfer`和`Server.Execute`,并分析它们各自的优缺点及适用场景。 ### 1. Response.Redirect `Response.Redirect`是最常用的...
`Server.Execute`与`Server.Transfer`类似,但它仅执行目标页面的服务器端代码,而不显示其输出。这通常用于执行一些后台处理任务。例如: ```csharp Server.Execute("Default5.aspx?address=beijing"); ``` ### 4...
总的来说,解决"The server failed to respond with a valid HTTP response"的问题,需要从网络、服务器配置、HttpClient配置和代码实现等多个角度进行排查。通过仔细阅读服务器日志,调整HttpClient设置,以及确保...
`Server.Transfer`方法用于在同一个应用程序内跳转页面,它能够在跳转时不重新发送请求,因此可以保持当前会话的状态和数据。 **示例代码**: ```csharp // WebForm1.aspx.cs Server.Transfer("WebForm2.aspx?id=AA...
### Server.Execute方法执行指定的ASP程序 #### 一、引言 在Web开发领域,特别是使用Active Server Pages (ASP) 进行网站构建时,Server.Execute 方法是一个非常实用的功能。它允许开发者在一个ASP页面中执行另一...
Response.Redirect 方法可以将用户从一个页面跳转到另一个页面。这个方法可以在不同的服务器上进行跳转。它可以接受两个参数,第一个参数是要跳转的 URL,第二个参数是一个布尔值,指示是否停止当前页面的执行。 ...
在本文中,我们将深入探讨如何使用C语言与SQL Server 2012进行交互,并结合Navicat和ODBC配置进行数据库操作。首先,我们需要确保安装了所有必要的软件和工具,包括Visual Studio (VS)、SQL Server 2012、Navicat ...
Node.js 基于 mssql 模块连接 SQL Server 数据库的简单封装操作示例 Node.js 是一个基于 JavaScript 的服务器端运行环境,使用 Node.js 可以轻松地连接各种数据库,包括 SQL Server。在本文中,我们将介绍如何使用...
本文将详细介绍ASP.NET中常用的四种导航方式:HTML超链接、`Response.Redirect`、`Server.Transfer`以及`Server.Execute`。每种方法都有其独特的应用场景和优缺点。 #### 一、HTML超链接 HTML超链接是最基本的导航...