我有一个关于viewModel中属性组织的问题。据我所知,viewmodel应该尽可能简单,它应该做的主要事情是绑定数据以查看。MVC 3 viewmodel属性
问题是如何从BL模型中区分viewmodel中的属性。 我的意思是,比如我有一个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模型。
1)复制2个模型中的属性,并使用默认模型绑定将数据从视图传输到控制器,然后从ViewModels和存储库更新数据创建BL模型?在这种情况下,我们有重复代码...
2)视图模型应该是这个样子:
public class UsersIdentificationViewModel
{
public UsersIdentificationViewModel()
{
UserInfoModel = new UserInfoModel();
}
public UserInfoModel UsersInfo { get; set; }
public UserDetailsModel UserDetails { get; set; }
}
默认绑定不会在这种情况下(纠正我,如果我误),我应该写工作自定义模型联编程序或类似的东西...什么方法对单元测试更好,或者有另一种方法?
您的选项2可以工作。支持嵌套视图模型。你试过了吗? –
我会试试这种方式,谢谢 – StringBuilder