1

現時点では、Teststep.cs ビジネス オブジェクトと、system.web.MVC 名前空間にバインドされ、IsDirty などの追加のプロパティを持つビューモデル ペンダントがあります。

プレゼンテーション レイヤーには、TeststepViewModel のさまざまなプロパティを示す 2 つのビュー (テンプレート (書き込み/読み取り + その他の関数) とテストプラン (ほぼ読み取り専用)) があります。

TeststepViewModelBase を作成し、別の 2 つの ViewModels TemplateTeststepVM と TestplanTeststepVM を作成する必要がありますか?

それになんの得があるの?

4

1 に答える 1

0

いいえ、ViewModel と View を 1 対 1 でマッピングする必要はありません。理にかなっていれば、2 つのビュー間で単一の ViewModel を共有することは完全に賢明です。

ViewModel は、ビューで使用されるモデルのバージョンです。現在持っている ViewModel が論理コンポーネントを表している場合、それを 2 つのビュー間で共有することは理にかなっています。ビューが同じビジネス オブジェクトに対して異なるパースペクティブを提供する場合、おそらく正しい方向に進んでいます。

ただし、これは、デフォルトで複数のビューに対して 1 つの ViewModel を使用する必要があるという意味ではありません。私は、1000 行を超える単一の巨大な ViewModel を使用するプロジェクトに取り組んできました。これは良いパターンではなく、維持するのが困難です。

于 2012-07-13T04:03:21.747 に答える