欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

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

发布时间:2025/6/16 编程问答 33 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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,如需转载请自行联系原作者

总结

以上是生活随笔为你收集整理的Response.Redirect、 Server.Transfer、Server.Execute三者区别的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。