假设我有一个带有路径模板/users/{userId}/profilePhoto
假设一位用户访问/users/123/profilePhoto
,另一位访问/users/444/profilePhoto
。
有什么办法可以找到用于解决该请求的路由模板(/users/{userId}/profilePhoto
)吗?例如,它是否可以从HttpContext
?
答案 0 :(得分:3)
在控制器操作方法中:
((Route)RouteData.Route).Url
RouteData
is a property on the controller。它的Route
property类型为RouteBase
,应可投放到Route
,其Url
property that contains the template。
从控制器操作方法外部,您可以执行相同的操作,但首先需要获取当前请求上下文:
((Route)HttpContext.Current.Request.RequestContext.RouteData.Route).Url;
答案 1 :(得分:1)
要在动作方法中获取当前使用的路线,您只需执行以下操作:
public ActionResult Index()
{
var route = this.RouteData.Route;
return View();
}
this
解析为当前控制器,可以省略。我只是留下来提醒自己目前的范围。