2020-08-04 19:09

利用 redirect 跳轉到 預設頁 或 預設查詢

在網站開發有一些技巧可以增加後續的維護性,利用重導向來做預設內容的處裡,這樣可以統一集中的進行控制。

預設頁面最常會因為業務的策略因素進行調整,這時候散落在各地的連結都要調整,費工又容易漏。

預設查詢這個麻煩點在於參數會變動,散落在各地的連結一樣是個麻煩。


但重導向這種方式也是有損失的,將會多一個 HTTP 請求,這對 UI 反應速度很要求的狀況來說,並不是一個好方法,可能就要改用統一網址管理來處理。


利用 MVC 的 Index() 來控制預設頁面,Index 將不會有實體頁面,而是用來進行重導向。
  1. public class UserController : Controller 
  2. { 
  3.    public ActionResult Index() 
  4.    { 
  5.        return RedirectToAction(nameof(List)); 
  6.    } 
  7.  
  8.    public ActionResult List(DateTime? date) 
  9.    { 
  10.        //... 
  11.        return View(); 
  12.    } 
  13.  
  14. } 


判斷 QueryString 為空時,進行預設查詢的重導向,以 QueryString 為判斷點的好處是有時候就是要查詢全部資料,這樣就不會被預設查詢卡到。
  1. public class UserController : Controller 
  2. { 
  3.    public ActionResult List(DateTime? date) 
  4.    { 
  5.        if (Request.QueryString.Count == 0) 
  6.        { 
  7.            RedirectToAction(nameof(List), new  
  8.            {  
  9.                date = DateTime.Today.ToString("yyyy-MM-dd")  
  10.            }); 
  11.        } 
  12.  
  13.        //... 
  14.        return View(); 
  15.    } 
  16.  
  17.  
  18. }