viewModel のプロパティの構成について質問があります。私が理解している限り、viewmodel はできるだけシンプルにする必要があり、主に行うべきことは、データをビューにバインドすることです。
問題は、ビューモデルのプロパティを BL モデルと区別する方法です。たとえば、次のようなBLモデルがあります。
public class UserDetailsModel
{
public string UserName {get;set;}
public string SomeInfo{get;set;}
public string AnotherInfo{get;set;}
public string Anything{get;set;}
public string Something {get;set;}
...
}
次に、別の BL モデルに次のように言わせます。
public class UserInfoModel
{
public string Info1{get;set;}
public string Info2{get;set;}
public string Info3{get;set;}
public string Info4{get;set;}
public string Info5 {get;set;}
...
}
問題は、両方の BL モデルのデータを持つ必要がある ViewModel を作成するためのベスト プラクティスは何かということです。
1) 2 つのモデルからプロパティを複製し、デフォルト モデル バインディングを使用してビューからコントローラーにデータを転送し、ViewModels から BL モデルを作成し、リポジトリ更新データを介して ? この場合、コードの重複があります...
2) ViewModel は次のようになります。
public class UsersIdentificationViewModel
{
public UsersIdentificationViewModel()
{
UserInfoModel = new UserInfoModel();
}
public UserInfoModel UsersInfo { get; set; }
public UserDetailsModel UserDetails { get; set; }
}
この場合、デフォルトのバインディングは機能しません (間違っている場合は訂正してください)。カスタム モデル バインダーまたはこのようなものを作成する必要があります。