关闭

将用户重定向到另一页总结

551人阅读 评论(0) 收藏 举报

 msdn上的地址:

ms-help://MS.MSDNQTR.v80.chs/MS.MSDN.v80/MS.VisualStudio.v80.chs/dv_aspnetcon/html/d47c522f-8837-47c6-a782-b21319e21197.htm

您经常需要将用户重定向到 Web 应用程序的其他页。ASP.NET 提供了下列在网页中生成重定向的方式:

  • 在页上使用超链接

  • 配置跨页发送,它使您能够在提交当前页时指定备用目标页。

  • 通过强制浏览器请求另一页,以编程方式重定向。

  • 通过向同一 Web 应用程序中的另一页传输控件,以编程方式重定向。

下面对每一选项分别进行描述。本主题结尾处的表对这些选项进行了汇总,并提供帮助您确定何时使用各个选项的指导原则。

超链接

可以在 ASP.NET 网页上使用 HTML 定位点标记 (<a>) 来创建静态链接,也可以通过使用 HyperLink 控件以编程方式控制超链接的链接文本和目标 URL。在此情况下,用户显式单击链接,然后浏览器转到目标页。目标页使用 HTTP GET 命令进行调用。因此,不会将与源页有关的任何信息传递到目标页,除非在目标页的 URL 上指定查询字符串。如果源页和目标页位于同一 Web 应用程序中,它们可以使用会话状态或应用程序状态来共享信息。

跨页发送

默认情况下,ASP.NET 网页中的按钮将该页发送到该页本身。跨页发送使您能够在 ASP.NET 网页上配置一个按钮,以便将当前页发送到另一页上。典型的示例是在创建多页窗体时,您可以在页上配置按钮来移动到窗体的下一页和上一页。

跨页发送与超链接的类似之处在于通过用户操作来启动传输。但是,在跨页发送中,目标页是使用 HTTP POST 命令调用的,该命令会将源页上控件的值发送到目标页。此外,如果源页和目标页位于同一 Web 应用程序中,则目标页可以访问源页的公共属性。应用程序中的所有页始终可以共享会话状态或应用程序状态中存储的信息。

有关更多信息,请参见 ASP.NET 网页中的跨页发送如何:将 ASP.NET 网页发送到另一页

使用浏览器以编程方式重定向

可以通过调用 Redirect 方法以编程方式重定向(即无需用户干预,强制浏览器打开新的页)。该方法向用户的浏览器发送命令,由浏览器获取目标页。调用 Redirect 方法是单击超链接的编程等效形式,也会生成对目标页的新的请求(HTTP GET 命令)。由于您使用自己的代码调用 Redirect 方法,所以可以根据应用程序的要求动态定义目标 URL(包括任何查询字符串信息)。与超链接一样,Redirect 方法不会向目标页传递发送信息。如果源页和目标页位于同一 Web 应用程序中,则可以通过将数据存储在会话状态中在源页和目标页之间共享数据。

在服务器上以编程方式重定向

也可以通过调用 Transfer 方法,在服务器上以编程方式重定向到目标页。在此情况下,服务器只是将当前源页的上下文传输给目标页。然后目标页呈现在源页的位置。源页和目标页必须位于同一 Web 应用程序中。与跨页发送一样,Transfer 方法也具有允许目标页从源页中读取控件值和公共属性值的优点。

由于源页和目标页之间的传输在服务器上进行,浏览器没有任何关于更改后的页的信息,它仍保留有关原始(源)URL 的信息。例如,Internet Explorer 中的“地址”框在执行传输后不会发生变化,而是继续显示最近请求的页(通常为源页)的 URL。也不会更新浏览器的历史记录以反映传输过程。如果用户在浏览器中刷新页面或单击浏览器的“后退”按钮,这可能导致意外行为。因此,对于以隐藏 URL 的方式向用户呈现页面的应用程序而言,调用 Transfer 方法是一种最佳的策略。

选择重定向选项

下表汇总了在页间进行重定向的可能方式。

策略 特征 用法

超链接

  • 在目标页上执行新的请求。

  • 不会将当前页的信息传递到目标页。

  • 需要用户启动。

  • 可重定向到任何页,而不仅仅是同一 Web 应用程序中的页。

  • 使您能够使用查询字符串或会话状态在页间共享信息。(HyperLink 控件使您能够以编程方式创建 URL 和查询字符串。)

  • 对于不作其他处理的导航,与链接的菜单或列表相同。

  • 导航到另一页应由用户控制时。

跨页发送

  • 将当前页信息发送到目标页。

  • 使发送信息在目标页中变为可用。

  • 需要用户启动。

  • 可重定向到任何页,而不仅仅是同一 Web 应用程序中的页。

  • 当这些页位于相同的 Web 应用程序中时,允许目标页读取源页的公共属性。

  • 用于将当前页的信息传递到目标页(与多页窗体相同)。

  • 当导航应该由用户控制时。

浏览器重定向

  • 在目标页上执行新的请求。

  • 将查询字符串传递到目标页。

  • 提供对目标 URL 和查询字符串的编程控制和动态控制。

  • 使您能够重定向到任何页,而不仅仅是同一 Web 应用程序中的页。

  • 使您能够存储处于会话状态的源页的信息,然后重定向以与目标页实现共享。

  • 用于条件导航,在需要控制目标 URL 和何时导航时使用。例如,如果应用程序必须根据用户提供的数据来确定要导航到的页,请使用该选项。

服务器传输

  • 将控件传输到在源页位置呈现的新页中。

  • 仅重定向到与源页位于相同的 Web 应用程序中的目标页。

  • 使您能够从源页读取值和公共属性。

  • 不会用目标页的相关信息来更新浏览器信息。在浏览器中按“刷新”或“后退”按钮可能导致意外行为。

  • 用于条件导航,在需要控制何时导航和需要访问源页的上下文时使用。

  • 该选项最适合在对用户隐藏 URL 的情况下使用。

0
0
查看评论

ASP.NET重定向_第一篇_将用户重定向到另一页

将用户重定向到另一页
  • liuning800203
  • liuning800203
  • 2010-10-08 20:57
  • 484

ASP.NET重定向_第二篇_如何将用户重定向到另一页

如何将用户重定向到另一页;如何将 ASP.NET 网页发送到另一页
  • liuning800203
  • liuning800203
  • 2010-10-08 21:24
  • 1058

[代码]强制浏览器重定向到另一页

<br />重点总结<br />在ASP.NET中要想实现网页的重定向,可以通过以下4种方式来实现:<br />1、通过超链接重定向。<br />2、使用跨页面发送技术重定向网页。<br />3、通过浏览器编程重定向网页。<br /&...
  • gjysk
  • gjysk
  • 2010-11-13 16:42
  • 1767

文件夹重定向,巧妙管理域用户文档

很多单位会遇到公用机多人使用,和一人使用多台电脑的情况,作为网管员,如何帮助用户安全管理文档呢?  作为单位的网络管理员,除了平时的网络维护、配置和管理,还得处理一些特殊的情况。由于我们单位经常遇到一台电脑多人共用和同一人使用不同电脑的情况,这就在数据资料的管理方面造成很多的问题,同时对于用户本身在...
  • ghosua
  • ghosua
  • 2008-05-07 17:37
  • 1703

struts2,跨package重定向

先贴上代码: /WEB-INF/jsp/index_student.jsp login_student.jsp /WEB-INF/jsp/student/register.jsp /WEB-INF/jsp/student/registersucces...
  • u011273194
  • u011273194
  • 2015-04-01 19:48
  • 923

struts2重定向action 到另一个action

在调用getCollect.action方法时,判断当没有登陆的时候则自动跳到登陆action类中的方法里如果登陆则跳到jsp 注解:  @Namespace("/user") public class LoginUserAction{ @Actio...
  • u012176588
  • u012176588
  • 2017-03-18 17:25
  • 592

php学习笔记(二十一)使用GET方法将值从一个页面传递到另一个页面

$var = urlencode('pass this text'); header("Location:page.php?message=$var");
  • LUOXINJIE
  • LUOXINJIE
  • 2014-12-02 21:34
  • 278

将进程的输出重定向至文件中

CString cmdLine = _T("ping.exe 192.168.3.49"); SECURITY_ATTRIBUTES sa={sizeof ( sa ),NULL,TRUE}; SECURITY_ATTRIBUTES *psa=NULL; ...
  • zhanglidn013
  • zhanglidn013
  • 2016-09-13 10:38
  • 595

python 重定向输出到文件

import sys #start output = sys.stdout outputfile = open(filename,'w') sys.stdout = outputfile #end outputfile.close() sys.stdout = output
  • ShellDawn
  • ShellDawn
  • 2017-05-04 10:56
  • 805

如何处理多页面重定向到同一页面后的返回问题

在开发一些复杂的程序时经常后遇到多个页面跳转到同一页面,然后在返回.如果没有一个有效的处理方法,看似简单的问题也将会变得十分复杂.那么如果巧妙地实现页面返回功能呢?    1.在客户端实现    可以为控件添加客户端的onclick事件,当...
  • zhouhuan965
  • zhouhuan965
  • 2012-12-27 16:19
  • 839
    个人资料
    • 访问:181256次
    • 积分:2469
    • 等级:
    • 排名:第17626名
    • 原创:61篇
    • 转载:46篇
    • 译文:0篇
    • 评论:28条
    文章分类
    最新评论
    网络大本营