1.使用傳統的Response.Redirect
例如
string url = "/account/create";
Response.Redirect(url);
1.Server.Transfer方法:
Server.Transfer("m2.aspx");//頁面轉向(伺服器上執行)。伺服器停止解析本頁,儲存此頁轉向前的資料後,再使頁面轉向到m2.aspx, 並將轉向前資料加上m2.aspx頁結果返回給瀏覽器。
2.Server.Execute方法:
Server.Execute("m2.aspx"); 伺服器儲存此頁轉向前的資料後,使頁面轉向到m2.aspx執行, 再返回本頁繼續執行.再將三者結果合并後返回給瀏覽器.
以上都是伺服器端頁面轉向所以瀏覽器不出現頁更改記錄(顯示的地址不會改變)。因此,如果使用者重新整理此頁,也許會出現一些其它意外情況. 此類頁轉向,可完成一些其它功能,比如訪問到前一頁面中的服務端控制項。
3.Response.Redirect:
當 瀏覽器請求aspx頁面時,碰到Redirect(url)方法, 相當於告訴瀏覽器,你先需訪問某頁面,於是瀏覽器再向伺服器發送一個到此頁面的請求。重定位是通過瀏覽器執行的,在伺服器和瀏覽器之間會產生額外的往返過 程。在網路狀況不是很好的情況下,兩次請求會大大的降低應用程式的反應速度,甚至佔用多餘的頻寬。
總結, 在網路狀態較好的情況下,Redirect(url)方法效率最高!! Server.Transfer方法和Server.Execute方法最靈活!! Server.Execute方法佔用資源最多。
2.使用MVC新的RedirectToAction("Action name","Controller name");
return RedirectToAction("Index","Home");//跳轉到首頁。
第一個參數是action 的名字,第二個參數是控制器controller的名字,方法返回的是個ActionResult.也就是返回視圖。