ASP.Net MVC、WebApi、および AngularJS の同じスタックを使用しているので、ちょっと試してみましょう。また、SPA を作成していると仮定します。
何よりもまず、Web API を視野に入れないでください。その適用性は、さまざまな形式でデータを送信することに限定されており、ビューの概念はありません。
サーバー側ルーティングと角度ルーティングの両方を使用して、ビューをユーザーに提供できます。実際、それらは互いに補完し合うことができます。
ng-appマスター ページと同様に、angular には宣言のあるメイン ページが必要です。MVC の観点からhome\index.cshtmlは、初期ビュー用にロードできます。このindexページ用に生成されたサーバー サイズ ビューには、ng-appディレクティブとng-viewディレクティブを含めることができます。
ng-viewビューがスワップ\ロードされる主要な領域です。サーバー側のメソッドng-viewと同等として比較できます。Angular を使用する場合は、必ずマスター ページから呼び出しを削除してください。RenderBody はメイン ページをロードするため、削除しません。代わりに、div だけを含むインデックス ページをロードする必要があります。@RenderBody()@RenderBody()ng-view
にロードされた各部分ビューに対してサーバー側ビューを作成しますng-view。たとえば、クライアント上のuserlist.cshtmlルートがクライアント上のルートに変更されたときに読み込まれるビューが存在する可能性が#/usersあります。これらのビューをサーバーからロードするには、 で指定する必要がありますtemplateUrl。$routeProvideこのテンプレートの URL は、サーバー ルーティング ( /user/index) によって解決されます。
これらの子ビューを作成する際の注意事項は次のとおりです。
- マスター ページを継承しないでください。
ng-viewしたがって、セクションに挿入する必要があるコンテンツのみを送信する必要があるため、<html>, <body>タグは送信されません。
- それらには、角度バインディングやその他の角度宣言的なものを含めることができます。
最初のテンプレートが Angular によってロードされると、テンプレートのデータをロードするためにサーバーを再度呼び出す場合があります。ここで、Web API の出番です。like を呼び出すと/api/users、すべてのユーザーに関する json データが返されます。返されたデータは、ビューとデータを結合するために使用できます。
私が自分自身を明確にしたことを願っています。