c# - Server.Transfer 和 Response.Redirect 有什么区别?

标签 c# .net asp.net

Server.TransferResponse.Redirect 有什么区别?

最佳答案

Response.Redirect 向客户端发送“302 Moved Temporarily”响应,然后客户端浏览器将向该位置发出请求。

Server.Transfer 在服务器端将控制权从一个页面转移到另一个页面,因此原始请求和响应缓冲区流在传输完成时保持原样。

这意味着 Response.Redirect 需要往返客户端,而 Server.Transfer 则不需要。另一个区别是 Server.Transfer 在浏览器中显示为原始网址......例如考虑 Page1.aspx 执行到 page2.aspx 的 server.transfer,在这种情况下,Page1.aspx 显示在地址栏中,即使它们实际上显示的是 Page2.aspx。相反,如果 Page1.aspx 执行了 Response.Redirect,那么将显示 Page2.aspx。

因此,根据您想要优化的内容,如果您希望正确支持页面书签,则 Response.Redirect 更好;如果您希望最大限度地减少客户端到服务器的往返,则 Server.Transfers 更好。

哦,请查看 http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=15 它通过警告更好地描述了这一点。

关于c# - Server.Transfer 和 Response.Redirect 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2514618/

相关文章:

c# - 中止阻塞线程的正确方法

.net - F#中的哈希散列和.net中的弱哈希表

c# - 当只有 xml 数据可用时,如何使用 LINQ to XML 插入新节点?

javascript - Controller 将 ViewBag 模型拆分为具有数据库参数的多个页面正在跳过记录

javascript - 关于向 Javascript 添加数据的简单问题

c# - 将逗号分隔的参数传递给 SQL 中的存储过程

c# - 使用 IEnumerable<T> 作为委托(delegate)返回类型

c# - 选定的 ComboBoxItem 图像没有改变

c# - 自引用泛型参数

c# - 如何在 asp.net 中设置控件属性