3


2

通常MVCパターンでは、ユーザーがページをクリックするとリクエストが送信され、コントローラーはリクエストを処理してからモデルを使用して処理し、適切なビューにルーティングします。

パッシブモデルとアクティブモデルについての記事を読みましたが、ビューがモデルと直接対話する可能性はあります、それは双方向の関係(すなわちModel <→ View)または一方向(すなわちModel) - >表示)

モデルとビューの間に関係があることは適切ですか? ASP.NET MVCプロジェクトでは、モデルとビューの間に関係があるのでしょうか。

3 Answer


2


私は、あなたの見解をモデル固有、すなわち強く型付けされたものにすることが、ほぼ常に望ましいと思います。 モデルが関連データを共有する場合は、そのデータのサブセットに固有の部分ビューを再利用できます。 ASP.NET MVCでは、モデルはビューを認識しない、または認識する必要があります。これらのモデルは、やり取りできる唯一の方法がWebリクエストを介しているためです。コントローラー機能です。 いいえ、あなたはあなたがWebサービスを通して対話することができたと言うかもしれません、しかし私はそれらがちょうどコントローラーの別の味であると考えるでしょう。 実際、MVCでは、代わりにRESTベースのコントローラーアクションを使用して、独立したWebサービスを開発する必要性はほとんどありません。


1


私はいつもモデルを提示する方法としてビューを見ています。 この観点によると、ビューはモデル対応であり、ASP.NET MVCでは、ViewDataまたはキャストからの悪用を避けるためにViewPageからページを継承する必要があります。

そのことを念頭に置いて、モデルはビューに対応しておらず、データをユーザーに提示するためにビューから使用される単なるオブジェクトです。

最後に、異なるビューから同じモデルを共有できます。たとえば、XML出力はHTML出力と同じモデルを共有できますが、ビューは大きく異なる可能性があります。

サイクルは多かれ少なかれ、ModelはModelを生成し、それをViewに渡します。そしてそれはModelを表示します。


0


Java Swingでは、MVCはViewとControllerを組み合わせたものとして実装されています。Modeはモデルから読み込みイベントを登録することで、相互の依存関係を緩和します。

通常、Webアプリケーションは実際のビューがクライアント上でレンダリングされ、モデルからイベントを受け取ることができないのでこれを行いません。そのような場合、関係は一方向に進むだけです。 モデルがビュークラスに直接依存しない限り、モデルとビューの間に関係があることは確かに悪いことではありません。 その場合、依存関係のサイクルが設定され、それは保守と特にテストに害を及ぼします。

たとえば、Swingでこれが実現される方法は、リスナーインタフェースを介して行われます。これにより、ビューはモデルの実装を実装または提供できます。