.NET MVC 获取路由模板

Pet*_*din 2 asp.net-mvc routes httpcontext

假设我有一个带有路由模板的控制器/users/{userId}/profilePhoto

假设一个用户访问/users/123/profilePhoto,另一个用户访问/users/444/profilePhoto

有什么方法可以找到/users/{userId}/profilePhoto用于解决该请求的路由模板 ( ) 吗?例如,是否可以从 中读取它HttpContext

小智 5

从控制器操作方法中:

((Route)RouteData.Route).Url
Run Code Online (Sandbox Code Playgroud)

RouteData是控制器上的一个属性。它有一个typeRoute属性RouteBase,该属性应该是可转换的Route,它有一个Url包含模板的属性

从控制器操作方法外部,您可以执行相同的操作,但首先需要获取当前请求上下文:

((Route)HttpContext.Current.Request.RequestContext.RouteData.Route).Url;
Run Code Online (Sandbox Code Playgroud)