现在的位置: 首页 > 综合 > 正文

页面跳转 Response.Redirect Server.Transfer Server.Execute

2019年11月19日 ⁄ 综合 ⁄ 共 1453字 ⁄ 字号 评论关闭

页面常见跳转的方法和选择

实现页面跳转有两种方法:   利用控件 、利用编程。

1.HyperLink 服务器控件

   HTML和ASP中,我们经常用<a href=target.asp>目标</a>方式实现页面的跳转,在ASP.Net中仍可用此方法,另外还可用HyperLink服务控件代替,如下:

    <form id="form1" runat="server">
    <div>
        <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="target.aspx">目标</asp:HyperLink></div>
    </form>

        上述两种方法实现结果一样,但是有一点重要区别,HyperLink服务器控件可以在服务器端编程,目标页可以根据当前的状态进行动态的变化.
注: HyperLink控件本身没有事件,因此只能在其他事件中设置NavigateUrl属性,例如:Page_Load.

2.编程
   HyperLink实现从一页面到另一页面的跳转的方式是完全由用户控制跳转时机的,如果在跳转之前添加条件判断,使用编程实现比较方便.
    使用代码实现页面跳转的方法有: Response.Redirect, Server.Transfer,Server.Execute

(1)Response.Redirect
 
从页面A跳转到页面B,内部控件保存的所有数据信息将丢失,因此页面B无法访问页面A提交的数据,跳转后浏览器的URL信息改变,但是可以通过Session,Cookie,Application等对象进行页面间的数据传递.
  Response.Redirect重定向操作发生在客户端,总共会涉及到两次与Web服务器的通讯.

(2)Server.Transfer
页面A跳转到页面B,同时页面处理的控制权也进行移交,在跳转过程中Request,Session等保存的信息不变,浏览器的URL仍保存A的URL信息.
  Server.Transfer的重定向请求在服务器端进行,客户端不知晓服务器执行了页面转换,因此URL保持不变.

(3)Server.Execute 
 Server.Execute 方法允许当前页面执行同一Web服务器上的另一页面,当另一页面执行完毕后,控制流程重新返回到原页面发出Server.Execute 调用的位置,被调用页面Page指令的EnableViewStateMac属性需要设置为False;


跳转方式的选择:

HyperLink 服务器控件---------用户决定何时转换,用户决定转换的时机

Response.Redirect------需要链接到另一台服务器的情况,需要链接到非aspx类型的页面的时候,需要将查询字符串作为URL一部分保留的情况

Server.Transfer-------同一台服务器之间Web页面的跳转,用Server.Transfer会避免不必要的网络通讯,获得更好的性能和浏览效果.

Server.Execute -----------需要将当前页面的输出结果插入到另一个页面中. 

---------------------------------------------------------------------------------------

为确保HTML输出的合法性,最好使用Response.Redirect方法,某些时候另外两种方法可能返回到客户端多个<HTML>和<Body>.

 

抱歉!评论已关闭.