asp.net知識彙總-頁面跳轉Server.Transfer和Response.Redirect

1. Server.Transfer 服務器端跳轉web

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 客戶端瀏覽器跳轉this

Response.Redirect的後續的語句也不會執行, 一樣會拋出ThreadAbortException, 以下圖所示:url

 

 

另外Response.Redirect屬於客戶端跳轉,請求直接返回,返回碼是302。客戶端瀏覽器收到302和須要跳轉的url location,發出第二個請求到這個url。spa

相關文章
相關標籤/搜索