本文介紹如何在ASP.NET MVC 中擷取當前URL、controller、action,請看
一、URL的擷取很簡單,ASP.NET通用:
【1】擷取 完整url (協議名+網域名稱+虛擬目錄名+檔案名稱+參數)
string url=Request.Url.ToString();
【2】擷取 虛擬目錄名+頁面名+參數:
string url=Request.RawUrl;
(或 string url=Request.Url.PathAndQuery;)
【3】擷取 虛擬目錄名+頁面名:
string url=HttpContext.Current.Request.Url.AbsolutePath;
(或 string url= HttpContext.Current.Request.Path;)
【4】擷取 網域名稱:
string url=HttpContext.Current.Request.Url.Host;
【5】擷取 參數:
string url= HttpContext.Current.Request.Url.Query;
【6】擷取 連接埠:
Request.Url.Port
二、當前controller、action的擷取
RouteData.Route.GetRouteData(this.HttpContext).Values["controller"]
RouteData.Route.GetRouteData(this.HttpContext).Values["action"]
或
MVC主版頁面RouteData.Values["controller"]
MVC主版頁面RouteData.Values["action"]
如果在視圖中可以用
ViewContext.RouteData.Route.GetRouteData(this.Context).Values["controller"]
ViewContext.RouteData.Route.GetRouteData(this.Context).Values["action"]
或
ViewContext.RouteData.Values["controller"]
ViewContext.RouteData.Values["action"]