【ASP.NET】-Server.transfer与Response.Redirect的区别

在ASP.NET中,在后台传值方式可以采用 Response.Redirect(“path”) 来重定向页面的,也可以采用Server.Transfer(“path”) 来重定向地址,那么这两者有何不同呢,一起来学习一下;

1、Response.Redirect()

Response.Redirect方法是简单地发送一条消息到浏览器,告诉浏览器定位到另一个页面,浏览器链接到一个指定的URL,当Response.Redirect()方法被调用时,它会创建一个应答,应答中指出了状态代码302(表示当前目标已经改变)及新目标URL,浏览器从服务器收到该应答,利用应答头中的信息发出一个对新URL的请求;

这就是说,使用Response.Redirect方法时重定向操作发生在客户端,总共涉及到两次与服务器的通信(两个来回):第一次是对原始页面的请求,得到一个302应答,第二次是请求302应答中声明的新页面,得到重定向之后的页面;

  • 代码应用
//两种方式
Response.Redirect("Error.html");
Response.Redirect("http://www.baidu.com/")

2、Server.transfer()

当使用 Server.Transfer 方法重定向页面时,虽然页面也会被重定向至指定页,但是并不会在浏览器的URL上体现出来,并且若重定向的页面后有参数,也不会显示在浏览器的URL上;

  • 应用:
File1.asp:

<%response.write("Line 1 in File 1<br>")
Server.Transfer("file2.html")
response.write("Line 2 in File 1<br>")%>

File2.asp:
<%response.write("Line 1 in File 2<br>")
response.write("Line 2 in File 2<br>")%>

输出:

Line 1 in File 1
Line 1 in File 2
Line 2 in File 2

跳转的目标页应是同一Web窗体页(.aspx页),转移到一个asp或asmx页面是无效的;

3、区别:

  • Response是浏览器重新跳转到指定网页,增加一次往返,server是发生在服务器端为主效率较高;
  • Server.transfer只能跳转到本地虚拟目录指定的页面,而Response.Redirect相对灵活;
  • Server.transfer跳转到其他页面浏览器显示地址不变,Response.Redirect跳转时浏览器地址变化

简单来看就是Response.redirect跳转的页面的时候地址栏会发生变化,而Server.Transfer在进行页面跳转的同时将页面的控制权进行交接,网页地址栏不变;Transfer 方法是 Response.Redirect 的一个高效的替代方案,当 Server.Transfer 方法在服务器上向另外的 ASP 页面传输执行时,重定向强制 Web 服务器处理额外的请求,避免了额外的周折;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值