残念ながら、ルート名はルートに保存されません。これは、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"]
お役に立てば幸いです。