在一个视图中显示多个数据列表(即客户联系人、客户位置)



我有一个客户控制器,在 Detail.cshtml 视图中,我需要显示该客户的联系人列表和该客户位置的列表。我有一个 Detail(int? id) ActionResult,我可以从控制器中访问我的客户服务。截至目前,在我的详细行动结果中,我能够做到:

var cust = _custService.GetCustomerById(id);
return View(cust);

如何建议在视图中获取我的其余列表。我想我会在我的客户服务中创建一个GetContacts(customerID),GetLocations(CustomerID),然后像我上面调用GetCustomerByID一样调用它们。如果我这样做,我怎么能访问这些列表。

我考虑的下一件事可能是创建一个具有所有基本客户属性(如客户)的 ViewModel。名称、客户。电话,然后试图弄清楚我如何确保ViewModel具有客户的联系人和位置。我是否只向 ViewModel 添加另外 2 个属性,例如 customer.contacts 和 customer.locations,因为 EF6 将使它们可供我使用?

关于获取与视图中实体相关的多个信息列表的最佳方法的任何建议?客户联系人和客户位置都是一对多

正如您所想的那样,最佳做法是使用视图模型来传输数据。

public class CustomerDetailViewModel {
    public string Name { get; set; }
    public string Phone { get; set; }
    public List<Contact> Contacts { get; set; }
    public List<Location> Locations { get; set; }
}

相关内容

最新更新