我正在尝试在C#MVC .NET Visual Studio中使用ViewModel。我有一个充满数据的模式。它是这样构建的:

public class Offer
{
    public List<ProjectleaderModel> Projectleaders { get; set; } = new List<ProjectleaderModel>();
    public List<OfferManagerModel> OfferManagers { get; set; } = new List<OfferManagerModel>();
    public List<ProductModel> Products { get; set; } = new List<ProductModel>();
    public List<PersonModel> People { get; set; } = new List<PersonModel>();
    public string Administration { get; set; }
    public string Status { get; set; }
    public DateTime Applicationdate { get; set; }
    public DateTime Submitdate { get; set; }
    public Boolean CustomerAgreementBoolean { get; set; }
    public DateTime CustomerAgreementBooleanDate { get; set; }



}

public class ProjectleaderModel
{
    public int Id;
    public string Name;

}


在我的视图模型中,我试图将数据放入一个单独的列表中,然后将其转换为下拉菜单:

    public List<Offer> Offermodel = new List<Offer>();
    public List<ProjectleaderModel> Projectleaders
    {
        get
        {
            return Offermodel.Select(x => x.Projectleaders).ToList();
        }
    }


如您所见,Projectleadermodel类在模型中。
为什么会出现错误:

Cannot implicitly convert type 'System.Collections.Generic.List<System.Collections.Generic.List<EnqueryApp.Model.ProjectleaderModel>>' to 'System.Collections.Generic.List<EnqueryApp.Model.ProjectleaderModel>'

最佳答案

Offermodel.Select(x => x.Projectleaders)行将为您提供Offer类对象的集合,然后在其中列出它们。

但是您的Projectleaders属性的返回类型是List<ProjectleaderModel>

所以他们不是比赛。

您需要创建Projectleaders对象列表以从该属性返回。

实质上:

return Offermodel.SelectMany(x => x.Projectleaders).ToList();

07-24 21:33