ASP.NET页面的跳转。
1、Response.Redirect(string url)
Response.Redirect("/default.aspx");
这个跳转页面的方法跳转的速度不快,因为它要走2个来回(2次postback),但他可以跳转到任何页面,没有站点页面限制(即可以由雅虎跳到新浪),同时不能跳过登录保护。但速度慢是其最大缺陷!redirect跳转机制:首先是发送一个 http请求到客户端,通知需要跳转到新页面,然后客户端在发送跳转请求到服务器端。需要注意的是跳转后内部空间保存的所有数据信息将会丢失,所以需要用到session。
2、 Server.Transfer(string path, bool preserveForm)
Server.Transfer("Default2.aspx?name=zhangsan", true);
终止当前页的执行,并使用指定的页URL 路径来开始执行一个新页。指定是否清除 System.Web.HttpRequest.QueryString和System.Web.HttpRequest.Form 集合。
参数:
path:服务器上要执行的新页的URL路径。
preserveForm:为 true(传递的参数将被保留),则保留System.Web.HttpRequest.QueryString 和System.Web.HttpRequest.Form集合;为 false,则清除 System.Web.HttpRequest.QueryString 和System.Web.HttpRequest.Form集合。
3.Server.Execute("Default5.aspx?address=beijing);
目标页面和原页面可以在同一个服务器上。
跳转向新的页面,再跳转会原页面。
浏览器中的URL为原路径不变。
当指定的ASPX页面执行完毕,控制流程重新返回原页面发出Server.Execute调用的位置。
这种页面导航方式类似于针对ASPX页面的一次函数调用,被调用的页面能够访问发出调用页面的表单数据和查询字符串集合,所以要把
被调用页面Page指令的EnableViewStateMac属性设置成False。
4.Response.Write("<script language='javascript'>window.open('aaa.aspx');</script>");
目标页面和原页面可以在2个服务器上,可输入网址或相对路径。
原窗口保留,另外新增一个新页面。
5.Response.Write("<scrip tlanguage='javascript'>window.location='Default2.aspx'</script>");
打开新的页面,原窗口被代替。