查了些文档,发现两者区别还是很明显的。根本上,Response是叫浏览器去重新转向到指定的网页,而Server自然是发生在服务器端为主了,因此会有以下区别:

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

5\Server.Transfer只能是具体的页面,不能添加url参数。但页面内变量可以保持传递。
6、url参数是什么意思?
Server.Transfer("xxx.aspx?mode=??? "); 是可以的

 

ASP.NET四种页面导航方式之比较与选择
作者: 仙人掌工作室   www.ASPCool.com 时间:2004-10-12 15:37:12  阅读次数:1978

 

     在ASP.NET应用中,Web表单之间的导航有多种方式:用超级链接,用Response.Redirect,用Server.Transfer,或者用Server.Execute。本文将分析这四种导航方式的异同及其优缺点,帮助你选择最佳的导航方式。
  
  一、超级链接
  
    从一个表单进入另一个表单最简单的方式是使用HTML超级链接控件。在Web表单中,使用超级链接的HTML代码类如:
  
  <a href="WebForm2.aspx">进入表单2</a>
  
  
  
    当用户点击该超级链接,WebForm2.aspx执行并将结果发送到浏览器。超级链接导航方式几乎可用于任何地方,包括HTML页面和普通的ASP页面。ASP.NET还提供了另一种可替换使用的方法,即HyperLink服务器控件:
  
  <form >
    图一:用Server.Execute合并两个源文件的页面
  
    用Server.Transfer或Server.Execute方法实现导航时,还要注意一点:最后得到的页面可能不是合法的HTML页面,因为最终返回给客户端的页面可能包含多个<HTML>和<BODY>等标记。IE浏览器看来能够容忍并正确处理这类情形,但如果用户要用到其他的浏览器,最好仔细测试一下。
  
  <b>三、比较与选择</b>
  
    既然从一个页面导航到另一个页面的办法有这么多,应该如何选择最佳的导航方式呢?下面是一些需要考虑的因素:
  
    <b>·</b>如果要让用户来决定何时转换页面以及转到哪一个页面,超级链接最适合。
  
    <b>·</b>如果要用程序来控制转换的目标,但转换的时机由用户决定,使用Web服务器的HyperLink控件,动态设置其NavigateUrl属性。
  
    <b>·</b>如果要把用户连接到另一台服务器上的资源,使用Response.Redirect。
  
    <b>·</b>用Response.Redirect把用户连接到非ASPX的资源,例如HTML页面。
  
    <b>·</b>如果要将查询字符串作为URL的一部分保留,使用Response.Redirect。
  
    <b>·</b>如果要将执行流程转入同一Web服务器的另一个ASPX页面,应当使用Server.Transfer而不是Response.Redirect,因为Server.Transfer能够避免不必要的网络通信,从而获得更好的性能和浏览效果。
  
    <b>·</b>如果要捕获一个ASPX页面的输出结果,然后将结果插入另一个ASPX页面的特定位置,则使用Server.Execute。
  
    <b>·</b>如果要确保HTML输出合法,请使用Response.Redirect,不要使用Server.Transfer或Server.Execute方法。

相关文章:

  • 2021-06-18
  • 2021-07-10
  • 2022-02-21
  • 2021-10-13
  • 2021-06-06
  • 2021-07-25
猜你喜欢
  • 2022-12-23
  • 2021-10-16
  • 2022-01-17
  • 2022-12-23
  • 2021-08-19
  • 2022-12-23
相关资源
相似解决方案