WebAPI とノックアウトの両方を使用しても害はありません。ノックアウトは単なるクライアント バインディング ライブラリであり、WebAPI はサービス レイヤーです。
- WebAPI から返されるビューモデルを引き続き作成できます。
- MVC コントローラーを使用して、ビューを返すことができます。
- ノックアウトを使用して、クライアント側のビューモデルと相互作用を管理できます。
一般的なアプローチ (WebAPI と Web API のモデル バインディングについてよく読んでください) は次のようになります。
- MVC プロジェクト -> 要求されたアクションに基づいてビューを提供するだけのコントローラーが含まれています。
- Web API -> ビジネス ロジックのサービス レイヤー。
- モジュラー Javascript (requirejs を使用し、knockout を使用し、Javascript でモジュール パターンを明らかにすることについて読んでください) ビューモデルを定義します (これを API によって提供されるビューモデルと考えないでください。これらのビューモデルは、クライアント側の対話、計算されたオブザーバブルなども定義します)
- ビューモデルを取り込んで DOM にバインドする Binder JS モジュールを作成します。
このアプローチに従うときに知っておくべきこと。1. レイアウトとパーシャルにバインディングがあり、ko.applyBindings(new vm()); を呼び出す場合。エラーが表示されます。代わりに、ビューモデル データのコンテナーとして機能する特定の div または要素にバインドします。2. Web API モデル バインダーは、ASP.Net MVC モデル バインディングとは異なります。これを読んでください。3. Javascript ファイルを特定の処理を行う小さなモジュールに分割すると、より適切に処理できます。
これについて詳しく知りたい場合は、ASP.Net を使用したシングル ページ アプリケーションを参照してください。ASP.Net および VS2012 アップデートの新しいリリースには、SPA テンプレートと、ノックアウト/WebAPI および Ember、Angular などの他のライブラリの使用に関する多くの例が含まれています。
それが役立つことを願っています。
乾杯!