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"]
或
RouteData.Values["controller"]
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"]

很顯然上面只能獲取當前View的,如果是嵌套的View上面獲得的最終的子View的,如果要獲取父View的,如下

ControllerContext.ParentActionViewContext.RouteData.Values["controller"]
ControllerContext.ParentActionViewContext.RouteData.Values["action"]
在視圖中
@ViewContext.ParentActionViewContext.RouteData.Values["controller"]
@CViewContext.ParentActionViewContext.RouteData.Values["action"]

 

參考:

http://stackoverflow.com/questions/4412310/how-to-get-current-controller-and-action-from-inside-child-action

http://blog.itpub.net/28699126/viewspace-1131655/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM