具有业务逻辑的多视图模型

本文关键字:视图 模型 业务 | 更新日期: 2023-09-27 18:19:37

基于此处的示例:

视图中的多个视图模型

任何人都可以在不添加单个项的情况下,通过显示数据源来显示此示例吗。例如,如果我的业务逻辑层能够提取客户地址,那么我的两个模型将是CustomerInfo&CustomerLocations-这样做时,我在显示的最后一行(.Add)中遇到了问题。我试图删除ToList,但无论哪种方式,它都表明我有无效的自变量-我的ViewModel类看起来与示例完全相同。

var ccus = new List<ViewModel.CustomerInfo>();
var cloc = new List<ViewModel.CustomerLocations>();
var cust = new ViewModel.Customers();
var cI1 = new Business.CustomerLogic.BLCustomerAddress();
cI1.LoadCustomerAddress(decryConcept, decryBnumber, intCustid).ToList();
ccus.Add(cI1);

在前面的例子中,他声明代码内联

var car1 = new Car
        {
            Id = 1, 
            Name = "Passat"
};

我想用调用我的Business Logic 来替换这篇文章

在我根据示例设置的新ViewModel中,我没有引用BusinesLogic模型,也许这就是我需要将两个对象连接在一起的地方。这是我那篇文章的代码。

public class ViewModel 
{ public class Customers 
{ public IEnumerable<CustomerInfo> CInfo { get; set; } 
  public IEnumerable<CustomerLocations> CLoc { get; set; } 
} 
 public class CustomerInfo
{
    public int CustomerID { get; set; }
    public string AccountNo { get; set; }
    public bool Active { get; set; }
    public string Company { get; set; }
.........

具有业务逻辑的多视图模型

ccus的类型为List<ViewModel.CustomerInfo>,因此add方法需要ViewModel.CustomerInfo,但您传入的是Business.CustomerLogic.BLCustomerAddress类型的cI1。调用ToList()不会有任何作用,因为您没有存储LoadCustomerAddress的结果,所以将结果转换为列表对任何事情都没有影响。