я загружаю в коллекцию маршрутов по проекту MVC несколько маршрутов в следующем формате:Получение URL из коллекции маршрута
routes.MapRoute(
name: string.Format("{0}/{1}/{2}/{3}", controller, action, seo.PageRefProductType, seo.PageRefProductId),
url: seo.FriendlyUrl,
defaults: new { controller = controller, action = action, id=seo.PageRefProductId}
);
Когда я к нему доступ с APIController, я могу использовать Url.Route (производный от System.Web.Http.Routing.UrlHelper), чтобы получить дружественный URL-адрес в этом маршруте.
Мой вопрос в том, как я могу получить доступ к этому URL-адресу, когда у меня нет метода Url.Route, например, когда я не в контроллере.
Это мое приложение начать global.asax:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
//loading the routes here:
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
AntiForgeryConfig.UniqueClaimTypeIdentifier = ClaimTypes.NameIdentifier;
LocalSiteManager.UpdateLatestReviewInManagedData();
//cache - Here is where I want to use the routes
LocalWorkFlow.StaticCache.LoadStaticCache(RouteTable.Routes);
}
Вот что я хочу в LoadStaticCache:
public static void LoadStaticCache(RouteCollection routes)
{
//get the URL of specific route by its' name
string myUrl = routes["myUrlName"].Url;
}