知识大全 Asp.net 页面导航的几种方法与比较
Posted 知
篇首语:生活可以五颜六色,但绝不能乱七八糟。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Asp.net 页面导航的几种方法与比较相关的知识,希望对你有一定的参考价值。
Asp.net 页面导航的几种方法与比较 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
在ASP NET应用中 Web表单之间的导航有多种方式 用超级链接 用Response Redirect 用Server Transfer 或者用Server Execute 本文将分析这四种导航方式的异同及其优缺点 帮助你选择最佳的导航方式一 超级链接 从一个表单进入另一个表单最简单的方式是使用HTML超级链接控件 在Web表单中 使用超级链接的HTML代码类如
复制代码 代码如下: <a href="WebForm aspx">进入表单 </a>当用户点击该超级链接 WebForm aspx执行并将结果发送到浏览器 超级链接导航方式几乎可用于任何地方 包括HTML页面和普通的ASP页面 ASP NET还提供了另一种可替换使用的方法 即HyperLink服务器控件
复制代码 代码如下: <form id="Form " method="post" runat="server"> <asp:HyperLink id="HyperLink " runat="server" NavigateUrl="WebForm aspx">进入表单 </asp:HyperLink> </form>上 述HTML代码的运行结果和第一个例子相同 因为ASP NET把HyperLink Web服务器控件视为一个HTML超级链接控件 但两者有一点重要的区别 HyperLink Web服务器控件可以在服务器端编程 具体地说 可以在程序代码中改变它的NavigateUrl属性 从而允许构造出具体目标可根据应用的当前状态动态 变化的超级链接 例如
复制代码 代码如下: Private Sub Button _Click( _ ByVal sender As System Object _ ByVal e As System EventArgs) _ Handles Button Click HyperLink NavigateUrl = "WebForm aspx" End Sub这段代码执行后 如果用户点击链接 他看到的将是WebForm aspx 而不是WebForm aspx 二 用程序控制重定向 虽 然超级链接能够从一个页面导航到另一个页面 但这种导航方式是完全由用户控制的 有些时候 我们可能要用代码来控制整个导航过程 包括何时转到另一个页 面 在这些场合 ASP NET有三种不同的方式可以达到相似的目的 调用Response对象的Redirect方法 调用Server对象的 Transfer或Execute方法 这三种导航方式的行为基本相似 但也有区别 Response Redirect Response Redirect 方法导致浏览器链接到一个指定的URL 当Response Redirect()方法被调用时 它会创建一个应答 应答头中指出了状态代码 (表示 目标已经改变)以及新的目标URL 浏览器从服务器收到该应答 利用应答头中的信息发出一个对新URL的请求 这就是说 使用Response Redirect方法时重定向操作发生在客户端 总共涉及到两次与服务器的通信(两个来回) 第一次是对原始页面的请求 得到一个 应答 第二次是请求 应答中声明的新页面 得到重定向之后的页面 Server Transfer Server Transfer方法把执行流程从当前的ASPX文件转到同一服务器上的另一个ASPX页面 调用Server Transfer时 当前的ASPX页面终止执行 执行流程转入另一个ASPX页面 但新的ASPX页面仍使用前一ASPX页面创建的应答流 如果用Server Transfer方法实现页面之间的导航 浏览器中的URL不会改变 因为重定向完全在服务器端进行 浏览器根本不知道服务器已经执行了一次页面变换 默认情况下 Server Transfer方法不会把表单数据或查询字符串从一个页面传递到另一个页面 但只要把该方法的第二个参数设置成True 就可以保留第一个页面的表单数据和查询字符串 同 时 使用Server Transfer时应注意一点 目标页面将使用原始页面创建的应答流 这导致ASP NET的机器验证检查(Machine Authentication Check MAC)认为新页面的ViewState已被篡改 因此 如果要保留原始页面的表单数据和查询字符串集合 必须把目标页面Page指令的 EnableViewStateMac属性设置成False Server Execute Server Execute方法允许当前的ASPX页面执行一个同一Web服务器上的指定ASPX页面 当指定的ASPX页面执行完毕 控制流程重新返回原页面发出Server Execute调用的位置 这种页面导航方式类似于针对ASPX页面的一次函数调用 被调用的页面能够访问发出调用页面的表单数据和查询字符串集合 所以要把被调用页面Page指令的EnableViewStateMac属性设置成False 默 认情况下 被调用页面的输出追加到当前应答流 但是 Server Execute方法有一个重载的方法 允许通过一个TextWriter对象(或者它 的子对象 例如StringWriter对象)获取被调用页面的输出 而不是直接追加到输出流 这样 在原始页面中可以方便地调整被调用页面输出结果的位 置 为说明其工作过程 下面我们创建一个Web表单 放入一个按钮控件(Button )和一个文本控件(Literal ) 在设计界面中转入代码视图 加入一个System IO名称空间的Imports语句 然后加入用户点击按钮时执行的代码
复制代码 代码如下: Private Sub Button _Click( _ ByVal sender As System Object _ ByVal e As System EventArgs) _ Handles Button Click Dim sw As StringWriter = New StringWriter() Server Execute("WebForm aspx" sw) Literal Text = sw ToString() End Sub然后为同一个Web应用创建第二个页面WebForm aspx 转入该页面的HTML视图 修改其Page指令禁止ViewState检查
复制代码 代码如下: <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm aspx vb" Inherits="Navigate WebForm " EnableViewStateMac="false"%> cha138/Article/program/net/201311/14374相关参考
ASP.NET的几种页面传值方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使用QueryS
ASP.NET页面之间传递值的几种方式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
ASP.NET中页面传值的几种方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!表单提交 
ASP.NET页面间的传值的几种方法[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASP
ASP.NET页面间的传值的几种方法 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ASPNET
ASP.NET实现页面传值的几种方法[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 第一种
ASP.NET实现页面传值的几种方法[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 下面的
ASP.NET实现页面传值的几种方法[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 第五种
ASP.NET实现页面传值的几种方法[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 使用S
ASP.NET页面间的传值的几种方法[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!