重点总结
在ASP.NET中要想实现网页的重定向,可以通过以下4种方式来实现:
1、通过超链接重定向。
2、使用跨页面发送技术重定向网页。
3、通过浏览器编程重定向网页。
4、通过服务器重定向网页。
本示例所演示的是如何通过浏览器进行重定向。
其实,使用浏览器来进行重定向,也分为两种情况:
一种情况是编写客户端脚本来进行重定向,本示例不包含这方面演示。
另外情况就是由服务器强制浏览器进行重定向,也就是调用Response.Redirect()方法。这是本示例代码的演示重点。
需要说明的是,再调用Redirect()方法之前,最好将Response.BufferOutput设置为true,也就是启用内容缓冲。
示例代码
在网页上提供了一个下拉列表,其中列出用户可能使用的一些语言。用户可以选择这个列表中的任意一种语言,然后单击【更改语言】按钮,这样就把网页回发给服务器了。
然后,服务器根据用户选择语言,重定向到合适的网页。具体信息参看代码:
网页界面设计:
01 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Redirect.aspx.cs" Inherits="Redirect" %>
02
03 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
04 <html xmlns="http://www.w3.org/1999/xhtml">
05 <head runat="server">
06 <title>使用浏览器将用户重定向到另一页。Response.Redirect()</title>
07 </head>
08 <body>
09 <form id="form1" runat="server">
10 <div>
11 请选择你所使用的语言:
12 <br />
13 <asp:DropDownList ID="LanguagesList" runat="server">
14 <asp:ListItem Selected="True">China</asp:ListItem>
15 <asp:ListItem>Deutsch</asp:ListItem>
16 <asp:ListItem>English</asp:ListItem>
17 <asp:ListItem>Espa?ol</asp:ListItem>
18 </asp:DropDownList>
19 <asp:Button ID="ChangeLanguageButton" runat="server" Text="更改语言"
20 onclick="ChangeLanguageButton_Click" />
21 </div>
22 </form>
23 </body>
24 </html>
用来重定向的代码如下,也就是【更改语言】按钮的单击事件处理程序代码:
01 protected void ChangeLanguageButton_Click(object sender, EventArgs e)
02 {
03 this.Response.BufferOutput = false;
04 switch (this.LanguagesList.SelectedValue)
05 {
06 case "China":
07 this.Response.Redirect("China.htm");
08 break;
09 case "Espa?ol":
10 this.Response.Redirect("Espa?ol.htm");
11 break;
12 case "Deutsch":
13 this.Response.Redirect("Deutsch.htm");
14 break;
15 default:
16 this.Response.Redirect("English.htm");
17 break;
18 }
19 }