Response.Redirect、 Server.Transfer、Server.Execute三者区别

简介:
(1)Response.Redirect简单地发送一条消息到浏览器,告诉浏览器定位到另一个页面。client->server->client->server->client
(2)Server.Transfer也是将用户引导到另外一个页面,并返回客户端。
client->server->server->client
(3)Server.Execute执行一个页面,并返回结果。在asp.net中被Transfer代替
 
 
使用Server.Transfer优点:
首先,通过 Server.Transfer 引导到另一页面保留服务器资源,通过更改服务器端"焦点"和传输请求来代替告诉浏览器重定向,这就意味着你不会占用较多的 HTTP 请求,因此这可以减轻服务器的压力,使你的服务器运行更快。不过, "transfer" 只能在同一服务器端的同一站点间运行,所以你不能用 Server.Transfer 将用户重定向到另一服务器上的站点。要重定向到服务器以外的站点,只有 Response.Redirect 能办到。 
其次,Server.Transfer 保留浏览器端的 URL 地址。这对流线型的数据输入很有帮助,不过这也增加了调试的复杂度。
最后,Server.Transfer 方法还有另一个参数——"preserveForm"。假如你设置这个参数为 True,比如:Server.Transfer("WebForm2.aspx", True), 那么 query string 和任何 form 变量都会同时传递到你定位的页面。 
例:WebForm1.aspx 有一个文本框名为 TextBox1,你利用 preserveForm 为 True 传递到 WebForm2.aspx,那么在WebForm2.aspx页面可以用 Request.Form("TextBox1") 来取得文本框的值。

这种技术对向导式的多页面输入很有用,不过这里有一个你必须注重的问题是,当你使用 preserveForm 参数时,ASP.NET 有一个 bug,通常情况下,当试图传递 form 或 query string 值时会发生错误。

非官方的解决办法是在传递的目的页面中设置 EnableViewStateMac属性设置为false。


本文转自 韬光星夜 51CTO博客,原文链接:http://blog.51cto.com/xfqxj/477101,如需转载请自行联系原作者
相关文章
|
14天前
|
Python
【Azure 应用服务】Azure Function HTTP Trigger 遇见奇妙的500 Internal Server Error: Failed to forward request to http://169.254.130.x
【Azure 应用服务】Azure Function HTTP Trigger 遇见奇妙的500 Internal Server Error: Failed to forward request to http://169.254.130.x
|
3月前
|
Ubuntu Linux C语言
Could not establish connection to “xx.xx.xx.xx“:The VS Code Server faild to start.【重要解决方案】
Could not establish connection to “xx.xx.xx.xx“:The VS Code Server faild to start.【重要解决方案】
48 0
|
4月前
|
SQL 安全 网络安全
解决:provider:Named Pipes Provider error:40无法打开SQL Server的连接 的3种方式
解决:provider:Named Pipes Provider error:40无法打开SQL Server的连接 的3种方式
660 0
|
11月前
|
文字识别
Response from backend server
Response from backend server
50 1
|
Web App开发 前端开发 安全
基础:BS(Browser/Server)、CS(Client/Server)架构
基础:BS(Browser/Server)、CS(Client/Server)架构
449 0
|
微服务
SpringCloud - Cannot execute request on any known server
SpringCloud - Cannot execute request on any known server
183 0
SpringCloud - Cannot execute request on any known server
|
C++ Windows
A simple IOCP Server/Client Class
  Download demo project v1.
1872 0
|
Kubernetes 监控 Java
k8s下的eureak服务注册失败(cannot execute request on any known server)解决
k8s下的eureak服务注册失败(cannot execute request on any known server)解决
667 0
|
应用服务中间件
no response from server
今天配置的nginx代理,同事反应在swagger上没响应,出现如下情况 本来以为是配置的地址有问题,但是无论换成哪个网卡地址都不行,后面在 “proxy_pass” 下面添加了一个请求头 “proxy_set_header”,如下所示 location /bi/ { proxy_pass http://127.
2128 0