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")]
シリアライザを書くか、 Newtonsoft.Jsonのような一般化されたもの。 –
あなたはその質問を読んだことがありますか?シリアライゼーションは正常に動作し、私はRouteTable.Routesから必要なデータを抽出し、それを私の作業シリアライザに渡してAngularに返すようにします。 –
はい、私は質問を読んだ。いくつかのコードを書く必要があります。あなたはそのコードを書く方法を尋ねていますか? –