代码改变世界

asp.net知识汇总-页面跳转Server.Transfer和Response.Redirect

  Dirichlet  阅读(499)  评论(0编辑  收藏  举报

1. Server.Transfer 服务器端跳转

webform1.aspx跳转到webform2.aspx页面

webform1.aspx代码如下:

protected void Page_Load(object sender, EventArgs e)
{
      this.Server.Transfer("WebForm2.aspx");
      this.Response.Write("webform1");
}

当代码执行到Server.Transfer语句会立刻跳转到WebForm2.aspx页面执行,而不会再执行后续的语句this.Response.Write("webform1"); 原因是Server.Transfer语句会抛出异常,如果试着抓住这个异常,会发现是ThreadAbortException, 由Transfer函数内部调用Thread.Abort引发,所以后续的代码不会执行。如下图所示:

 

 

 

2. Response.Redirect 客户端浏览器跳转

Response.Redirect的后续的语句也不会执行, 同样会抛出ThreadAbortException, 如下图所示:

 

 

另外Response.Redirect属于客户端跳转,请求直接返回,返回码是302。客户端浏览器收到302和需要跳转的url location,发出第二个请求到这个url。

 

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示