我如何在asp.net MVC中获得所有配置的WebApi路由的列表

本文关键字:配置 WebApi 列表 路由 asp net MVC | 更新日期: 2023-09-27 18:09:11

我试图通过配置值来引导一个托管在使用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类中生成如下所定义的对象集合,序列化它们,并在bootstrap配置中输出它们,供AngularJS应用程序使用。

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

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

NB。所有WebApi路由都使用Routes属性显式配置,如下所示:

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

我如何在asp.net MVC中获得所有配置的WebApi路由的列表

如果您使用Visual Studio创建默认模板asp.net Mvc或WebAPi,您将在文件夹>区域'帮助页中获得帮助…如果你访问你的应用程序:Http://yourportapplication/api/Help如果项目webapi…然后,您可以看到如何获取信息的代码…只是为了开始你所寻找的,....