不幸的是,路线名称未存储在路线中。它只是在 MVC 内部用作集合中的键。我认为这是您在使用 HtmlHelper.RouteLink 创建链接时仍然可以使用的东西(也许在其他地方也是如此,不知道)。
无论如何,我也需要它,这就是我所做的:
public static class RouteCollectionExtensions
{
public static Route MapRouteWithName(this RouteCollection routes,
string name, string url, object defaults, object constraints)
{
Route route = routes.MapRoute(name, url, defaults, constraints);
route.DataTokens = new RouteValueDictionary();
route.DataTokens.Add("RouteName", name);
return route;
}
}
所以我可以注册这样的路线:
routes.MapRouteWithName(
"myRouteName",
"{controller}/{action}/{username}",
new { controller = "Home", action = "List" }
);
在我的 Controller 操作中,我可以通过以下方式访问路由名称:
RouteData.DataTokens["RouteName"]
希望有帮助。