0

MVC の古典的な説明のいくつかでは、モデルはオブザーバー パターンを介してビューに通知します。これは ASP.NET MVC では発生しないように思われるため、Model、View、および Controller 間の基本的な関係の 1 つが欠落しています。

これは事実ですか?もしそうなら、なぜですか?

4

2 に答える 2

2

ASP.NET MVC のビューはステートレスです。それらは非常に短時間存在し、その後クライアントに送信されます。

プロセスは次のようになります。

  1. コントローラーにリクエストが届きます。

  2. コントローラーはモデルを取得し、ビューをインスタンス化します (モデルを渡します)。

  3. ビューがレンダリングされ、マークアップがクライアントに返されてから破棄されます。

したがって、ビューがクライアントに送信された後は存在しなくなるため、モデルの変更について通知するものは何もありません。

于 2010-12-01T18:06:03.803 に答える
0

オブザーバーパターンは必要ありません。ビューの元の定義では、次のように述べています。

ビューはそのモデル(またはモデルパーツ)にアタッチされ、質問をすることでモデルからプレゼンテーションに必要なデータを取得します。

http://heim.ifi.uio.no/~trygver/2007/MVC_Originals.pdf

Webアプリのコンテキストでは、可能な唯一のビューはブラウザーによってレンダリングされたマークアップ(HTML / XML)です。したがって、ASP.NET MVCの場合と同様に、ビューコードには、ユーザーに情報を提供するためにアクセスできるモデルインスタンスが渡されます。

于 2010-12-01T21:16:01.960 に答える