0

新しいAsp.NetMVC開発を開始しようとしていますが、最良の選択をしたいと思います。以前のMVC開発では、次のような一連のことを楽しんでいました。

  • ビューモデルに基づくビュー
  • クライアント側の検証
  • リモート検証

WebAPIとKnockoutについてWebでよく読んでいます。私はそれぞれの原則を理解していますが、これらの要素の1つ(または両方)を使用すると、上記の利点の恩恵を受けることができないように思われます。

私の新しい開発者は、主に検索結果に基づくいくつかのリストであり、次にそれに対するCRUD操作です。

新しいプロジェクトでのWebAPIやKnockoutの使用についてご意見をお聞かせください。これは部分的に主観的な選択であることを私は知っていますが、コミュニティの意見は私にとって重要です。多分あなたはすでにこれらの選択をしなければならなかったのですか?

ご意見ありがとうございます。

4

1 に答える 1

0

WebAPI とノックアウトの両方を使用しても害はありません。ノックアウトは単なるクライアント バインディング ライブラリであり、WebAPI はサービス レイヤーです。

  1. WebAPI から返されるビューモデルを引き続き作成できます。
  2. MVC コントローラーを使用して、ビューを返すことができます。
  3. ノックアウトを使用して、クライアント側のビューモデルと相互作用を管理できます。

一般的なアプローチ (WebAPI と Web API のモデル バインディングについてよく読んでください) は次のようになります。

  1. MVC プロジェクト -> 要求されたアクションに基づいてビューを提供するだけのコントローラーが含まれています。
  2. Web API -> ビジネス ロジックのサービス レイヤー。
  3. モジュラー Javascript (requirejs を使用し、knockout を使用し、Javascript でモジュール パターンを明らかにすることについて読んでください) ビューモデルを定義します (これを API によって提供されるビューモデルと考えないでください。これらのビューモデルは、クライアント側の対話、計算されたオブザーバブルなども定義します)
  4. ビューモデルを取り込んで 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 などの他のライブラリの使用に関する多くの例が含まれています。

それが役立つことを願っています。

乾杯!

于 2013-02-28T20:51:29.790 に答える