我有一个客户控制器,在 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; }
}