码迷,mamicode.com
首页 > 其他好文 > 详细

页面跳转

时间:2015-07-13 00:44:11      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:

  默认情况下,当一个页面提交到服务器,那么它将回传本页面。然而,在一个Web应用程序中,有很多情况需要转到另一个页面。为此,要么直接跳转,要么提交到服务器后跳转。为了实现这一功能,共有四种不同方法:超链接、服务器传输、浏览器重定向和跨页面发送。

  • 超链接 HperLink

  使用Hyperlink控件直接转到其NavigateUrl属性值所指向的页面,而不进行服务器回传。

  •   服务器传输Server Transfer

  HttpServerUtility类的Transfer方法可将.aspx或者.html页的URL作为字符串参数,回发给服务器。接着,终止运行当前页面,并开始请求新的页面。

  源页和目标页必需在同一个应用程序中。目标页可以访问源页的公共成员。

  Server.Transfer方法不验证当前用户是否有权限查看目标页。

  当重定向到新页面之后,浏览器的地址栏中,还是会显示原来页面的URL地址,而不是当前页的。浏览器的历史记录中也不会显示这次跳转,所以,单机浏览器的“Back”按钮一般不会后退到原来的页面。

  记住,在从一个页面到另外一个页面的过程中,即使视图状态存储在隐藏窗体字段中,这些数据也仍然不会被保存,由于视图状态是页面级的,所以,当利用Server.Transfer方法跳转到另一个页面时,视图状态将会失效。

  •   浏览器重定向 Response.Redirect

  HttpResponse类的Redirect方法相当于一个可编程的HyperLink。该方法将.aspx或.html页面的URL地址作为字符串参数,并且在客户端执行重定向,而不经过服务器回传的。因此,Redirect方法比Server.Transfer方法响应速度快。由于它完全是一个新的服务器请求,所以它会强制完整的验证和授权。除非在同一个应用中,否则数据是不能从源页传送到目标页的。在这种情况下,数据可以利用会话状态或者应用程序状态来实现传递。

  •   跨页发送

  页面可以被提交到服务器,然后直接发送到另一个页面。通过特定控件的PostBackUrl属性就可以实现这种功能。这种方法只能发送到另一个.aspx页面,而不能是.asp或.html页面。

  如果源页和目标页都在同一个应用程序中,那么它们可以像应用程序中其他页一样,共享会话状态和应用程序状态,以及源页的公共成员。页面可以跨页发送到应用程序之外的另一个页面,但是目标页无法使用源页的数据。

  如果可以访问目标页的PreviousPage属性,则源页将被再次实例化,同时还要恢复来自源页的视图状态。因此,使用PreviousPage属性的执行性能直接受到存储的视图状态数据大小的影响。

 

页面跳转

标签:

原文地址:http://www.cnblogs.com/qi123/p/4641834.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!