Quel est le moyen le plus simple d'obtenir l'URL (relative ou absolue) d'un itinéraire dans MVC? J'ai vu ce code ici sur SO mais il semble un peu bavard et n'énumère pas le RouteTable.ASP.NET MVC: Route vers l'URL
Exemple:
List<string> urlList = new List<string>();
urlList.Add(GetUrl(new { controller = "Help", action = "Edit" }));
urlList.Add(GetUrl(new { controller = "Help", action = "Create" }));
urlList.Add(GetUrl(new { controller = "About", action = "Company" }));
urlList.Add(GetUrl(new { controller = "About", action = "Management" }));
Avec:
protected string GetUrl(object routeValues)
{
RouteValueDictionary values = new RouteValueDictionary(routeValues);
RequestContext context = new RequestContext(HttpContext, RouteData);
string url = RouteTable.Routes.GetVirtualPath(context, values).VirtualPath;
return new Uri(Request.Url, url).AbsoluteUri;
}
Qu'est-ce qu'une meilleure façon d'examiner la RouteTable et obtenir une URL pour un contrôleur et une action donnée?
Si vous êtes dans une action il y a l'aide d'UrlAction http://msdn.microsoft.com/en-us/library/system.web.mvc.urlhelper.action.aspx – R0MANARMY