Server.Transfer
和 Response.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/