我希望从[{1}}获取RequestContext.RouteData.Routes
在调试器中打开时,我有选项"结果视图"向我提供System.Web.Mvc.Routing.RouteCollectionRoute
的列表,其中包含我需要的信息。
如何在代码中获取此列表(或数组)?我尝试了foreach并且还查看是否有任何可以帮助我的LinQ-Methods(.ToList等)但没有成功。
答案 0 :(得分:2)
Routes
中没有RouteData
这样的内容。 Proof
RouteData
仅包含带有URL参数的字典。可能这不是你想要的。
但是你可以通过这种方式轻松获得所有路线:
var routeList = System.Web.Routing.RouteTable.Routes.ToList();
答案 1 :(得分:0)
FWIW,这对我来说不起作用,因为我试图获取URL清单。通常ApiExplorer可以正常工作,但我们使用自定义模型绑定器,ApiExplorer似乎不支持。更多信息:
https://forums.asp.net/t/1835575.aspx?ApiExplorer+and+parameters+of+complex+type
无论如何,我能够使用以下代码获取API URL清单:
var httpConfiguration = Request.GetConfiguration(); //For reference
var routes = httpConfiguration.Routes
.Select(route => (IEnumerable)route)
.Single(route => route!=null)
.Cast<HttpRoute>();
var manifest = routes
.Select(route => route.RouteTemplate)
.ToList();
丑陋,但无论好坏,它都有效。