ASP.NET怎样实现页面重定向
发布日期:2016-04-21 00:00 来源:http://www.zzrd.net 点击:
网站中肯定有多个页面构成,页面间的关系支撑着网站的层次关系。这就考虑到一个页面重新定向的问题,微软提供的ASP.NET中提供了如下3种常用的页面重定向方式:
1. 超链接
常见的方法是使用超链接作为用户提供跳转到目标页的“接口”。可以在 ASP.NET 网页上使用HTML<a>标记创建静态链接,也可以通过使用 HyperLink 服务器控件以编程方式控制超链接的链接文本和目标 URL,如下面的代码所示。
代码实例:
<a href="<http://www.net.cn/>oonseo.cn" target="_blank">SEO研究中心</a>
<asp:HyperLink
ID="HyperLink1"
runat="server"
NavigateUrl="<http://www.net.cn/>oonseo.cn">
我的网站
</asp:HyperLink>
这两种方法的特点在于可以将页面重定向到任何页,而不局限于同一Web应用程序当中。但是不会将当前页的信息传递到目标页,如果需要跨页传递(共享)信息,通常需要使用查询字符串或会话状态。
2. 使用浏览器以编程方式重定向
可以通过调用 Redirect 方法为页面设置重定向URL。
代码实例:
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("~/Test.aspx");
}
Redirect 方法接受一个表示目标位置的字符串。当服务器遇到Redirect语句时,将发送一条指令(包含新的地址)给浏览器,然后让浏览器去发送http请求。与 超链接一样,Redirect 方法不会向目标页传递信息。如果源页和目标页位于同一Web应用程序中,则可以通过将数据存储在会话状态中在源页和目标页之间共享数据。
3. 在服务器端以编程方式重定向
Redirect是通过浏览器进行重定向的,而Transfer 方法则是在服务器上直接重定向到目标页。也就是说,比起Redirect方法,Transfer少了一个由服务器传输数据到浏览器的过程,而直接由服务器 端转向目标页。Transfer方法的另一个显著特点就是在页面转换时,Request集合里的内容不会丢失,从而为开发人员带来了方便。
代码实例:
protected void Button1_Click(object sender, EventArgs e)
{
Server.Transfer("~/Test.aspx");
}
由于源页和目标页之间的传输在服务器上进行,浏览器没有任何关于更改后的页的信息,它仍保留有关原始(源)URL 的信息。例如,Internet Explorer 中的“地址”框在执行传输后不会发生变化,而是继续显示请求的页(通常为源页)的 URL。因此,对于以隐藏 URL 的方式向用户呈现页面的应用程序而言,调用 Transfer 方法是一种好的策略。注意:采用Transfer方式重定向,源页与目标页必须位于相同的 Web 应用程序中,否则会引发异常。