整理关于页面跳转的方式

Response.Redirect(url+"?id=1")

    由于Response.Redirect方法要进行两次请求响应操作

    (

      注:首先是发送一个http请求到客户端,通知需要跳转到新页面,这将导致客户端发送一个新的请求到服务器,

        换句话说, 一个重定向请求实际上是两个请求响应:一个是最初的请求响应,另一个是新的重定向请求响应

    )

    ,因此,我们应该在对性能要求高的网站尽量避免使用这种方法。要注意的是重定向请求只是一个GET请求,就意味着我们不能从源页中通过重定向命令提交数据。

    但是我们可以在重定向中使用查询字符串来传递数据。然而,只从技术上说,

    使用redirect方式确实可以从一个网页跳到另一个网页。相比之下,Server.Transfer会更有效率但是跳转的范围仅限于同一个Web服务器(同一站点)的不同网页

    从本质上说,我们可以使用Server.Transfer来消除不必要的请求响应操作。如果我们需要重定位到不同服务器的网页就需要使用Response.Redirect方法

1.Response.Redirect("http://www.jb51.net",false); 目标页面和原页面可以在2个服务器上,可输入网址或相对路径。后面的bool值为是否停止执行当前页。 跳转向新的页面,原窗口被代替。" 浏览器中的URL为新路径。 :Response.Redirect方法导致浏览器链接到一个指定的URL。当Response.Redirect()方法被调用时,它会创建一个应答,应答头中指出了 状态代码302(表示目标已经改变)以及新的目标URL。浏览器从服务器收到该应答,利用应答头中的信息发出一个对新URL的请求。这就是说, 使用Response.Redirect方法时重定向操作发生在客户端,总共涉及到两次与服务器的通信(两个来回):第一次是对原始页面的请求, 得到一个302应答,第二次是请求302应答中声明的新页面,得到重定向之后的页面。

2.Server.Transfer("Default2.aspx?name=zhangsan",true); 目标页面和原页面可以在同一个服务器上。 跳转向新的页面,原窗口被代替。 波球论坛 浏览器中的URL为原路径不变。 默认情况下,Server.Transfer方法不会把表单数据或查询字符串从一个页面传递到另一个页面,但只要把该方法的第二个参数设置成 Tb310True,就可以保留第一个页面的表单数据和查询字符串。 同时,使用Server.Transfer时应注意一点:目标页面将使用原始页面创建的应答流,这导致ASP.NET的机器验证检查b310,,博球,博球网,行家心水,赛事推荐,赛事分析,资料库,足球赛事,篮球,NBA,赔率,比分,篮球数据,足球数据.(Machine Authentication Check,MAC)认为新页面的ViewState已被篡改。因此,如果要保留原始页面的表单数据和查询字符串集合, 必须把目标页面Page指令的EnableViewStateMac属性设置成False。 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个服务器上,可输入网址或相对路径。 原窗口保留,另外新增一个新页面。 详细出处参考:http://www.jb51.net/article/21046.htm

原文地址:https://www.cnblogs.com/xingxing00/p/3642353.html