6

ViewModel フィールドを割り当てる場合、データの表示方法を決定する ViewModel オブジェクトにドメイン オブジェクトを直接渡す必要がありますか、それともサービスなどの別のクラスでモデルから ViewModel にデータを割り当てる必要がありますか?

また:

編集:ビューモデルをレシーバーとプレゼンターに分割することに意味はありますか? (更新時に特定のフィールドのみをバインドする代わりに?)

4

3 に答える 3

7

通常、コントローラ アクションはビジネス オブジェクトを取得し、viewmodel が必要とするものを配置します。

フィールド Name、Address、Id を含むビジネス オブジェクトがあり、View が Name のみを表示する必要がある場合、ViewModel にはフィールド「Name」のみがあり、コントローラー アクションはそれに値を設定します。ViewModel は、ビジネス クラスについて何も認識してはならず、表示する必要があるものだけを認識している必要があります。

主な/唯一のロジックは「表示ロジック」です。これは、「TotalAmount が負の場合、CSS クラスの negativeNumber で表示する」のようなものです。

于 2010-01-29T02:50:11.350 に答える
4

SoC のために、そのロジックが View に関連している場合、それらは ViewModel または View 自体に存在しても安全ですが、ビジネスまたはプログラムに関連している場合は、それぞれモデルとコントローラーに配置します。

于 2010-01-29T06:50:06.303 に答える
3

私の経験では、サービスを使用してモデルをビューモデルにマップしました。ViewModels にロジックを入れません。

余談ですが、AutoMapperを調べて、マッピングを支援することはおそらく価値があります。繰り返しのマッピング ロジックの記述を削減するのに確実に役立ちます。

于 2010-01-29T02:47:07.090 に答える