2016-09-28 34 views
0

我想通过配置值来引导单个页面AngularJs应用程序托管在利用WebApi的MVC应用程序中(请参阅下面的Razor视图,这是通过继承BasePage和依赖项注入Serializer/FinancialYears服务实现的)。如何获取asp.net MVC中所有配置的WebApi路由列表?

<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中提取这些信息?有没有更简单的方法来生成所需的数据?

注意:所有的WebAPI路由配置明确使用Routes属性为这样:

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

写一个序列化程序,或使用像Newtonsoft.Json一样是一个普遍的例子。 –

+0

你甚至读过这个问题吗?序列化工作正常,我想从RouteTable.Routes中提取需要的数据,并将其传递给我的工作序列化程序以传回Angular。 –

+0

是的,我读了这个问题。你需要编写一些代码。你在问如何编写代码? –

回答

0

如果您创建默认模板asp.net的MVC或的WebAPI使用Visual Studio,你会得到帮助的文件夹>地区\ HelpPage ......如果你访问你的应用程序:Http://yourportapplication/api/Help如果项目webapi ... 然后,你可以看到代码如何获取信息...只是为了启动你在找什么,....