我有一个包含销售订单列表的客户对象。我试图在网页上创建局部视图,使我可以使用单选按钮单击并查看每个客户的列表。问题是,在客户控制器中,我需要将客户IEntity(通过id)传递给构造函数。
我曾尝试查找此内容,但我对此并不陌生,我认为我使用的单词不正确,或者可能我只是不太了解,无法在其他人的代码中找到答案。
客户对象(显然是构造函数)
public class Customer : IEntity
{
[Key]
public int CustomerId { get; set; }
public int Id => CustomerId;
[Display(Name = "First Name")]
public string FirstName { get; set; }
[Display(Name = "Last Name")]
public string LastName { get; set; }
[Display(Name = "Customer")]
public virtual string Name => $"{FirstName} {LastName}";
[Display(Name = "Address")]
public string Address1 { get; set; }
public string Address2 { get; set; }
[Display(Name = "City")]
public string City { get; set; }
[Display(Name = "State")]
public string State { get; set; }
[Display(Name = "Zipcode")]
public string Zipcode { get; set; }
[Display(Name = "Email")]
public string Email { get; set; }
[Display(Name = "Phone Number (USA)")]
public string UsaPhone { get; set; }
public decimal TotalSales => SalesOrders.Sum(so => so.OrderTotal);
public List<SalesOrder> SalesOrders { get; private set; }
public Customer()
{
SalesOrders = new List<SalesOrder>();
}
}
来自出现错误的客户控制器的代码
public ActionResult _customersSalesOrders(int id)
{
var customer = db.Customers.Find(id);
var salesOrderList = new List<SalesOrder>(customer);
return PartialView(salesOrderList);
}
结果为错误CS1503“参数1:无法从'ITP245.Models.Customer'转换为'int']
您正在创建一个新的List<SalesOrder>
,这意味着您只能在其中放置SalesOrder
类型的对象。您的Customer
类不会继承自SalesOrder
,也无法放入列表中。
也许您是想将客户的销售订单放入列表中?
如果是这样,您的代码可能看起来像这样:
public ActionResult _customersSalesOrders(int id)
{
var customer = db.Customers.Find(id);
var salesOrderList = customer.SalesOrders;
return PartialView(salesOrderList);
}