如何在asp.net MVC中获取所有已配置的WebApi路由的列表?

时间:2016-09-28 15:42:35

标签: c# asp.net angularjs asp.net-mvc

我正在尝试传递配置值以引导在使用WebApi的MVC应用程序中托管的单页AngularJs应用程序(请参阅下面的Razor视图,这是通过继承BasePage和依赖注入Serializer / FinancialYears服务来实现的)

<script>
var angularInitConfig = @Html.Raw(Serializier.Serialize(new {
                   financialYears = FinancialYearsService.GetFinancialYears()
               }));
</script>

这非常有效,但我真的希望能够扩展它以包含来自我的WebApi应用程序的路径,以避免必须单独在WebApi应用程序和AngularJs应用程序中配置端点。

RouteTable.Routes课程中探讨过,我可以看到我需要的信息是可以从视图中访问的,但是我无法提取它。

所以我理想的做法是从RouteTable.Routes类生成下面定义的对象集合,将它们序列化并在引导程序配置中将它们吐出来供AngularJS应用程序使用。

new {
    name = "SomeService",
    route = "api/{financialYearId}/someservice",
    method = "POST"
}

有人知道如何从RoutesTable.Routes中提取这些信息吗?是否有更简单的方法来生成所需的数据?

NB。所有WebApi路由都使用Routes属性明确配置:

[HttpGet]
[Route("api/{financialYearId}/someservice")]

1 个答案:

答案 0 :(得分:0)

如果使用Visual Studio创建默认模板asp.net Mvc或WebAPi,您将获得文件夹中的帮助&gt; Areas \ HelpPage ...如果您访问应用程序:Http://yourportapplication/api/Help如果项目webapi ... 然后,你可以看到代码如何获取信息...只是为了开始你想要的东西,....