C# 请帮助我从我的方法返回一个列表

C# 请帮助我从我的方法返回一个列表,c#,asp.net-mvc-3,C#,Asp.net Mvc 3,我试图从数据库中获取信息,将其转换为列表并返回CustomerList。这第一段代码运行良好。第二个例子是,我试图完成相同的事情,只是字段来自我的数据库。我所做的有什么问题,我如何才能使这一切顺利进行?第二段代码在我的项目中的其他地方工作,但不在这里 private SchoolIn.Models.CustomerList CreateCustomerList() { return new SchoolIn.Models.CustomerList() { new

我试图从数据库中获取信息,将其转换为列表并返回CustomerList。这第一段代码运行良好。第二个例子是,我试图完成相同的事情,只是字段来自我的数据库。我所做的有什么问题,我如何才能使这一切顺利进行?第二段代码在我的项目中的其他地方工作,但不在这里

private SchoolIn.Models.CustomerList CreateCustomerList()
{
    return new SchoolIn.Models.CustomerList()
    {
        new SchoolIn.Models.Customer { Id = 1, Name      = "Patrick", Address = "Geuzenstraat 29", Place = "Amsterdam" },
        new SchoolIn.Models.Customer{ Id = 2, Name = "Fred", Address = "Flink 9a", Place = "Rotterdam" },
        new SchoolIn.Models.Customer { Id = 3, Name = "Sjonnie", Address = "Paternatenplaats 44", Place = "Enkhuizen" },
        new SchoolIn.Models.Customer { Id = 4, Name = "Henk", Address = "Wakerdijk 74", Place = "Utrecht" },
        new SchoolIn.Models.Customer { Id = 5, Name = "Klaas", Address = "Paternatenplaats 44", Place = "Plaantan" }
    };
}

private SchoolIn.Models.CustomerList CreateCustomerList()
{
    return new SchoolIn.Models.CustomerList()
    {
        SchoolInDB db = new SchoolIn.Models.SchoolInDB();
        var courseprogresses = db.CourseProgresses.Include(c => c.Course).Include(c => c.Teacher);
        return View(courseprogresses.ToList());
    };
}

首先,第二个代码是无效的C#。所以我想它不会编译事件。不能在对象初始化语法中使用此类表达式。在进入ASP.NET MVC之前,请先学习C

另一个问题是,您的方法是私有的,您试图返回视图,这是您在控制器操作中执行的操作。view方法返回ActionResult,而您的方法返回类型是SchoolIn.Models.CustomerList,这同样是错误的

因此,将其移动到某个控制器操作中,在该操作中,您将实例化数据库访问上下文,然后执行查询并将模型返回到相应的视图进行显示:

public class HomeController: Controller
{
    ...

    public ActionResult CreateCustomerList()
    {
        SchoolInDB db = new SchoolIn.Models.SchoolInDB();
        var courseprogresses = db
            .CourseProgresses
            .Include(c => c.Course)
            .Include(c => c.Teacher)
            .ToList();
        return View(courseprogresses);
    }
}
如果您想将其保留在单独的方法中:

private List<SchoolIn.Models.CourseProgress> CreateCustomerList()
{
    SchoolInDB db = new SchoolIn.Models.SchoolInDB();
    return db
        .CourseProgresses
        .Include(c => c.Course)
        .Include(c => c.Teacher)
        .ToList();
}
private List CreateCustomerList()
{
SchoolInDB db=新SchoolIn.Models.SchoolInDB();
返回数据库
.课程进度表
.包括(c=>c.课程)
.包括(c=>c.教师)
.ToList();
}

在第一个函数中,您返回的是实际列表,而在第二个函数中,您没有返回列表,而是返回了模型为列表的视图。因此,您需要返回视图结果viz。行动结果


希望对您有所帮助

代码似乎正常工作,但我现在收到一条错误消息:private List CreateCustomerList(){SchoolInDB db=new SchoolInDB();{return db.courseprogress.Include(c=>c.Course).Include(c=>c.Teacher).ToList();}@ CuryDykopER,如果这篇文章帮助你解决了你所面临的问题,你应该考虑把它标记为答案:点击它旁边的刻度。现在得到一个转换错误消息。这里的错误信息:不能隐式地将类型“Salt.Cuff.Gual.Lead”转换为“Stase.Cyto.Gual.Lead”。这里是E的代码。除了ToList().private List CreateCustomerList(){SchoolInDB=new SchoolInDB();返回db.courseprogress.Include(c=>c.Course).Include(c=>c.Teacher.ToList();}检查您的返回类型,它是课程进度类型列表和方法id的返回类型CustomerList类型列表这两者应该是相同的..Leuk dat mijn stadje op SO staat!#enkhuizen