2016-09-28 65 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 ... 然後,你可以看到代碼如何獲取信息...只是爲了啓動你在找什麼,....