重点总结
在ASP.NET中要想实现网页的重定向,可以通过以下4种方式来实现:
1、通过超链接重定向。
2、使用跨页面发送技术重定向网页。
3、通过浏览器编程重定向网页。
4、通过服务器重定向网页。
本示例演示的是第四种重定向方式。
也就是调用Server.Transfer()方法进行重定向。它和Response.Redirect()方法的区别就是重定向的操作是在服务器上悄悄完成的。
怎么知道呢?
可以通过调用这两个方法之后,浏览器地址栏有没有发生改变来进行区别。
调用Response.Redirect()之后,浏览器的地址被更新为由Redirect()方法的参数指定的URL;
也就是说,重定向是浏览器自己完成的,虽然这命令是由服务器下达的。但是,浏览器清楚知道网页已经重定向了。
而调用Server.Transfer()之后,浏览器的地址并未更改,但是网页的内容早已经不是源页的内容了。
也就是说,服务器重定向了,但浏览器不知道。
示例代码
本演示代码,通过单击源页上的重定向按钮,服务器端调用Server.Transfer()将网页重定向到名为Another.aspx的页面。
演示代码中使用的是包含了Boolean参数的Transfer()重载方法。
此Boolean参数的作用是指示是否保留页的查询字符串和窗体的数据,保留则为true,不保留则为false。
你也可以使用Transfer()的另外一个只需要提供重定位的URI的重载方法。
protected void TransferButton_Click(object sender, EventArgs e) { this.Server.Transfer("Another.aspx", true); }