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