К сожалению, название маршрута не сохраняется в маршруте. Он просто используется внутри 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" }
);
В моем действии контроллера я могу получить доступ к имени маршрута с помощью:
RouteData.DataTokens["RouteName"]
Надеюсь, это поможет.