2009-05-03 18 views
7

私が見たすべてのMVC図では、ViewとModelの間には常に接続があり、Viewがモデルにアクセスできることを示しています。ASP.net MVC - ビューはどのようにモデルにアクセスしますか?

これはいつですか?現時点では、QueryStringからParameterを取得し、MyObjectViewDataを取得するためにModelにクエリを行い、Viewを返し、MyObjectViewDataを渡すコントローラアクションがあります。だから本質的に私はその間にコントローラーを持っています。

これは論理的なアプローチだと思われますが、モデルとビューが一緒にビジネスを行っているという前提には合いません。

コントローラなしで相互作用する典型的な状況は何ですか? MVC(ウェブ上の)ビューで

答えて

6

は直接モデルエンティティの特定のインスタンスをレンダリングすることにより、モデルと対話します。コントローラ経由のモデルで間接的にしかを実行しません。 Web以外の実装では、Observerパターンを使用して、Controllerなしのモデルを更新するModelのメソッドを呼び出すView要素でハンドラを登録できます。 ASP.NET MVCやその他のWebベースの実装は、Web以外の実装よりも疎結合しています。私の意見では、これは良いことです。これはコントローラの実装がはるかに優れている傾向があり、コントローラとモデルの間に懸念が生じるのを防ぐために注意する必要があります。

ウェブ実装は、おそらくあなたが本当にコントローラーせずに2つの間で通信することはできませんので、ビューにモデルからの間接的な接続なしで描画されるべきです。私は、Webサービスがこの接続を提供できると主張することができると思いますが、私はそれをControllerの別の形式と見なします。

関連する問題