2

疎結合コンポーネントをサポートするために Web フォームでイベントを使用する方法を置き換えることができる ASP.Net MVC の機能はどれですか?

たとえば、Web フォームの単純なページャー コントロールを考えてみましょう。

  1. ページ番号をクリック
  2. ページャーは、新しいページ番号で「PageChange」イベントを発生させます
  3. このサブスクライブしているページ/コントロールはイベントを受け取り、新しいデータを取得してバインドするための呼び出しの開始を処理します。

同様にサポートする ASP.Net MVC で使用できるツール

  • 疎結合
  • コンポーネントの再利用性
  • 単一のページ/ビュー (非常に複雑な「ポータル」タイプのページなど) のロジックの分離。
4

2 に答える 2

1

一般に、ASP.NET MVC と Model-View-Controller は、アプリケーションをサポートするデータとコードを、ユーザーに表示される視覚的な "プレゼンテーション レイヤー" マークアップから分離することで、懸念事項の疎結合と分離をサポートします。

適切に設計されていれば、MVC のコントローラーとビューを再利用できるため、エンティティの編集ビューを関連するビューに変更なしで「埋め込む」ことができます。

たとえば、Orders ビューには OrdersDetail 部分ビューが含まれる場合があります。この部分的なビューは、アプリケーション内の他の場所でも使用できる OrderDetail 編集ビューに置き換えることができます。

ビューからモデルを分離すると、コードがプレゼンテーション層のコンテキストから分離されるため、単体テストがより効果的になり、煩雑さが軽減されます。データベースからデータを取得する単体テスト コードで System.Web を参照する必要はありません。

于 2010-04-01T16:16:22.247 に答える
0

MVCはイベントを排除します。これは、ほとんどの場合、イベントは、クライアントがサーバーに実行しようとしていることとサーバーが実際に実行していることの間の不要なレイヤーにすぎないためです。

Webフォームのページングの例では、クライアントがボタンをクリックすると、ブラウザーがイベント/ビューステートを送信し、エンジンがButtonClickedイベントを発生させます。イベントを調べて、クライアントがページングしようとしていることを確認し、ページングロジックを実行します。

MVCパラダイムでは、ユーザーは、ページングロジックを実行するコードに直接リクエストを行うボタンをクリックします。ボタンをそこに置いたときにボタンが呼び出すアクションを知っているので、なぜイベント発火のすべての策略を通過するのですか?コントローラでは、コマンドを取得したときにイベントを発生させることができますが、正直なところ、その使用例を想像することはできません。

どちらの方法も同じことを実現しますが、MVCは複雑さの層を取り除くだけです。

于 2010-08-09T00:46:03.637 に答える