.NET MVC获取路由模板

时间:2018-03-09 07:44:34

标签: asp.net-mvc routing httpcontext

假设我有一个带有路径模板/users/{userId}/profilePhoto

的控制器

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

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

中读出来

2 个答案:

答案 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解析为当前控制器,可以省略。我只是留下来提醒自己目前的范围。

相关问题