2016-09-28 6 views
0

WebApiを使用するMVCアプリケーション内でホストされる1ページのAngularJsアプリケーションをブートストラップするための設定値を渡そうとしています(下記のRazorビューを参照してください)。これは、BasePageと継承シリアライザ/ FinancialYearsサービスを継承することによって実現されます。asp.net MVCで設定されたすべてのWebApiルートのリストを取得するにはどうすればよいですか?

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

これは、しかし、私が本当にWEBAPIアプリ、個別AngularJsアプリの両方でエンドポイントを設定することを避けるために、私のWEBAPIアプリからのルートを含むように拡張できるようにしたいと思い、完璧に動作します。

RouteTable.Routesクラスでは、私は必要な情報が利用可能であり、ビューからアクセスできることがわかりましたが、私はそれを抽出することができませんでした。

私は理想的には、RouteTable.Routesクラスから定義されたオブジェクトのコレクションを生成し、それらをシリアル化して、AngularJSアプリケーションのブートストラップ設定で消費させることです。

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

誰がどのようにRoutesTable.Routesからこの情報を抽出するためのアイデアを持っていますか?必要なデータを簡単に生成する方法はありますか?

NB。すべてのWebAPIのルートは、次のようなRoutes属性を使用して明示的に設定されています

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

シリアライザを書くか、 Newtonsoft.Jsonのような一般化されたもの。 –

+0

あなたはその質問を読んだことがありますか?シリアライゼーションは正常に動作し、私はRouteTable.Routesから必要なデータを抽出し、それを私の作業シリアライザに渡してAngularに返すようにします。 –

+0

はい、私は質問を読んだ。いくつかのコードを書く必要があります。あなたはそのコードを書く方法を尋ねていますか? –

答えて

0

Visual Studioを使用して、デフォルトのテンプレートasp.net MVCやWEBAPIを作成する場合は、フォルダ内のヘルプを取得します>地域\ HelpPage ...とあればあなたはあなたのアプリケーションにアクセスします:Http://yourportapplication/api/Helpプロジェクトwebapi ... の場合、情報を取得する方法を知ることができます...あなたが探していたものを開始したばかりです...

関連する問題