# 用C# MVC在Action或View上取得Route的資料 ###### tags: `程式設計` ## Action 取得完整Route的資料 ```=C# var myRoute = RouteData.Values; ``` 單獨取一欄的Route資料 ```=C# var controller = RouteData.Values["controller"].ToString(); var action = RouteData.Values["action"].ToString(); var id = RouteData.Values["id"].ToString(); ``` 把Route資料轉成包含斜線的網址(string) ```=C# var myRouteUrl = Url.RouteUrl(RouteData.Values); ``` ## 在filter取得Route資料 ```=C# public override void OnActionExecuted(ActionExecutedContext filterContext) { var actionName = filterContext.RouteData; } ``` ### 取得網址、querystring 和 post的資料 承上,可以用 filterContext.HttpContext.Request 取相關資料 * Request.Url; (已包含 QueryString) * Request.QueryString; (僅 QueryString) * Request.Form; (僅 post form 的資料) ## View(razor) View不能夠直接呼叫RouteData,需要用ViewContext.RouteData來取 ```=C# @ViewContext.RouteData.Values["id"] ``` ## ## 參考資料 https://docs.microsoft.com/zh-tw/dotnet/api/system.web.routing.routedata?view=netframework-4.8 https://stackoverflow.com/questions/32530619/how-can-i-get-the-function-action-name-that-custom-attribute-is-attached-to-whil https://stackoverflow.com/questions/7579967/retrieving-data-from-a-post-method-in-asp-net/7580203
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up