использовать ниже код snip
Task.WaitAll(Task.Run(async () => await service.myAsyncMethod()));
Имя маршрута не хранится в маршруте, к сожалению. Это просто используется внутренне в 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"]
Hope, которая помогает.
При использовании стандартной установки MapRoute как ниже:
routes.MapRoute( name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
... это будет работать в представлении...
var routeName = Url.RequestContext.RouteData.Values["action"].ToString();