Server.Transfer为何不能打开新的窗口

Server.Transfer是在服务器端就页面转向了要用客户端的才可以

 

① 页面:

<asp:Button ID="btnSearch" runat="server" Text="查看已添加任务" Visible="false" OnClick="btnSearch_Click" />

              <asp:HyperLink runat="server" Target="_blank"></asp:HyperLink>

 

 

 

    后台:

Server.Transfer("~/pages/project/task-list.aspx?ProjectNumber=" + number);

 

 

②页面:

<asp:Button ID="btnSearch" runat="server" Text="查看已添加任务" Visible="false" OnClick="btnSearch_Click" />

 

   后台:

Response.Write("<script>window.open('../../../pages/project/task-list.aspx?ProjectNumber=" + number + "','_blank')</script>");

 

 

Response是叫浏览器去重新转向到指定的网页,而Server自然是发生在服务器端为主了。

1. Server.Transfer只能够转跳到本地虚拟目录指定的页面,而Response.Redirect则十分灵活; 
2. Server.Transfer可以将页面参数方便传递到指定页面; 
3. 使用时,Server.Transfer跳到别的页面后,浏览器显示的地址不会改变,有时反而会造成误会,当然也有些场合需要这样的效果; 
4. Server.Transfer可以减少客户端对服务器的请求; 

Response.Redirect()需要在服务器和客户端往返两次 ;Server.Transfer()在服务器端一次通信即可 

 

详细可参考:https://www.cnblogs.com/net5x/articles/4317549.html

 

posted @ 2020-01-08 11:06  suqq小白  阅读(263)  评论(0编辑  收藏  举报