預設頁面最常會因為業務的策略因素進行調整,這時候散落在各地的連結都要調整,費工又容易漏。
預設查詢這個麻煩點在於參數會變動,散落在各地的連結一樣是個麻煩。
但重導向這種方式也是有損失的,將會多一個 HTTP 請求,這對 UI 反應速度很要求的狀況來說,並不是一個好方法,可能就要改用統一網址管理來處理。
利用 MVC 的 Index() 來控制預設頁面,Index 將不會有實體頁面,而是用來進行重導向。
- public class UserController : Controller
- {
- public ActionResult Index()
- {
- return RedirectToAction(nameof(List));
- }
- public ActionResult List(DateTime? date)
- {
- //...
- return View();
- }
- }
判斷 QueryString 為空時,進行預設查詢的重導向,以 QueryString 為判斷點的好處是有時候就是要查詢全部資料,這樣就不會被預設查詢卡到。
- public class UserController : Controller
- {
- public ActionResult List(DateTime? date)
- {
- if (Request.QueryString.Count == 0)
- {
- RedirectToAction(nameof(List), new
- {
- date = DateTime.Today.ToString("yyyy-MM-dd")
- });
- }
- //...
- return View();
- }
- }