繁体中文
设为首页
加入收藏
当前位置:在线教程首页 >> 程序设计 >> .Net专区 >> Asp.Net开发 >> ASP.NET四种页面导航方式之比较与选择

ASP.NET四种页面导航方式之比较与选择

2005-09-15 08:08:00  作者::佚名  来源:本站原创  浏览次数:383  文字大小:【】【】【

    在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 id="Form1" method="post" runat="server">

    <asp:HyperLink id="HyperLink1" runat="server"

    NavigateUrl="WebForm2.aspx">进入表单2</asp:HyperLink>

  </form>

    上述HTML代码的运行结果和第一个例子相同,因为ASP.NET把HyperLink Web服务器控件视为一个HTML超级链接控件。但两者有一点重要的区别,HyperLink Web服务器控件可以在服务器端编程。具体地说,可以在程序代码中改变它的NavigateUrl属性,从而允许构造出具体目标可根据应用的当前状态动态变化的超级链接,例如:

  Private Sub Button1_Click( _

    ByVal sender As System.Object, _

    ByVal e As System.EventArgs) _

    Handles Button1.Click

    HyperLink1.NavigateUrl = "WebForm3.aspx"

  End Sub

    这段代码执行后,如果用户点击链接,他看到的将是WebForm3.aspx,而不是WebForm2.aspx。

  二、用程序控制重定向

    虽然超级链接能够从一个页面导航到另一个页面,但这种导航方式是完全由用户控制的。有些时候,我们可能要用代码来控制整个导航过程,包括何时转到另一个页面。在这些场合,ASP.NET有三种不同的方式可以达到相似的目的:调用Response对象的Redirect方法,调用Server对象的Transfer或Execute方法。这三种导航方式的行为基本相似,但也有区别。

    2.1 Response.Redirect

    Response.Redirect方法导致浏览器链接到一个指定的URL。当Response.Redirect()方法被调用时,它会创建一个应答,应答头中指出了状态代码302(表示目标已经改变)以及新的目标URL。浏览器从服务器收到该应答,利用应答头中的信息发出一个对新URL的请求。

    这就是说,使用Response.Redirect方法时重定向操作发生在客户端,总共涉及到两次与服务器的通信(两个来回):第一次是对原始页面的请求,得到一个302应答,第二次是请求302应答中声明的新页面,得到重定向之后的页面。

    2.2 Server.Transfer

    Server.Transfer方法把执行流程从当前的ASPX文件转到同一服务器上的另一个ASPX页面。调用Server.Transfer时,当前的ASPX页面终止执行,执行流程转入另一个ASPX页面,但新的ASPX页面仍使用前一ASPX页面创建的应答流。

    如果用Server.Transfer方法实现页面之间的导航,浏览器中的URL不会改变,因为重定向完全在服务器端进行,浏览器根本不知道服务器已经执行了一次页面变换。

 

[1] [2] [3]  下一页

此文章不能满足您的需求?那就就Google一下吧:)
Google
 

责任编辑:admin


相关文章
 

最新文章

更多

· 四种页面导航方式之比较...
· .NET 神话
· 应用平台选择:.Net或Java?
· 开发者面临的.Net挑战(三)
· 开发者面临的.Net挑战(二)
· 开发者面临的.Net挑战(一)
· .Net将如何影响我们?(二)
· .Net将如何影响我们?(一
· NET真面目(下)
· NET真面目(上)

推荐文章

更多

· 四种页面导航方式之比较...
· .NET 神话
· 应用平台选择:.Net或Java?
· 开发者面临的.Net挑战(三)
· 开发者面临的.Net挑战(二)
· 开发者面临的.Net挑战(一)
· .Net将如何影响我们?(二)
· .Net将如何影响我们?(一
· NET真面目(下)
· NET真面目(上)

热点文章

更多