【发布时间】:2012-01-15 16:19:07
【问题描述】:
我有以下视图模型,
public class SiteAdminCreateViewModel
{
public Customer Customer { get; private set; }
public CustomerSite CustomerSite { get; private set; }
public SelectList CustomerNames { get; private set; }
public SiteAdminCreateViewModel(CustomerSite customerSite, Customer customer)
{
CustomerSite = customerSite;
Customer = customer;
CustomerNames = new SelectList(customer.CustomerName);
}
}
以及我的存储库中用于返回客户列表和 CustomerSites 列表的以下方法
public IQueryable<CustomerSite> GetCustomerSites
{
get { return context.CustomerSites; }
}
public IQueryable<Customer> GetCustomers
{
get { return context.Customers; }
}
当我在控制器中实例化视图模型时,我希望将客户列表返回给视图模型中的选择列表。
public ViewResult Create()
{
CustomerSite customerSite = new CustomerSite();
var customer = repository.GetCustomers.ToList();
return View(new SiteAdminCreateViewModel(customerSite, customer));
}
但是返回行抛出错误
无法从 System.Collections.Generic.List' 转换为 'CustomerOrders.Domain.Entities.Customer
我认为这是因为我在客户类型的 Viewmodel 中定义了客户变量,但我试图传递客户列表?
任何人都可以就我在这里出错的地方提供任何建议吗?
我是否需要在视图模型中同时定义客户类型和客户名称选择列表类型,我只定义了客户对象,所以我可以使用它将客户传递给选择列表,但我不确定这是否是最好的如何做到这一点?
任何人都可以为新手提供任何建议,我们将不胜感激。
【问题讨论】:
标签: asp.net-mvc-3 entity-framework-4 viewmodel