簡體   English   中英

當查詢字符串為空時重定向

[英]Redirecting when the querystring is empty

在我的項目中,我有兩個公交服務控制器,分別是公交路線和公交路線停靠站。 為了訪問路線停靠站,您需要選擇一條公交路線,如果尚未選擇路線,我需要重定向回到公交路線索引。 我做了一個If else語句來檢查查詢字符串和保存該信息的cookie。
當我直接去公交路線停靠站控制器時,它應該讓我回到公交路線列表,但事實並非如此。

public ActionResult Index()
        {

            string busRouteCode = "";
            //checks query string to see if empty
            if (Request.QueryString == null)
            {
                //checks the cookies to see if empty
                if (Request.Cookies["busRouteCode"] == null)
                    { 
                    //if empty returns to bus route controller.
                     return View("index", "snBusRoutes");
                    }
                else
                    {
                        busRouteCode = Response.Cookies["busRouteCode"].Value;    
                    }                             
            }
            else 
            {
              busRouteCode = Request.QueryString["busRouteCode"];  
            }


            var routeStops = db.routeStops.Include(r => r.busRoute).Include(r => r.busStop);
            return View(routeStops.ToList());
        }

我不認為Request.QueryString 整體不會為null 盡管特定可以為null或為空。 像這樣:

if (string.IsNullOrWhiteSpace(Request.QueryString["busRouteCode"]))
    if (string.IsNullOrWhiteSpace(Request.Cookies["busRouteCode"]))
        return View("index", "snBusRoutes");

更新:在語義上,在這種情況下,執行重定向可能比返回視圖更好。 用戶正在發出特定請求,但是該請求將他們定向到其他地方。 他們應該知道他們要去其他地方。 像這樣:

if (string.IsNullOrWhiteSpace(Request.QueryString["busRouteCode"]))
    if (string.IsNullOrWhiteSpace(Request.Cookies["busRouteCode"]))
        return RedirectToAction("index", "controllerName");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM