C# 如何在.NETMVC中将数据库中不同表中的数据传递给视图

C# 如何在.NETMVC中将数据库中不同表中的数据传递给视图,c#,asp.net-mvc,linq,C#,Asp.net Mvc,Linq,我有两张桌子:电影和时间表 电影公司 public class Movie { public int MovieID { get; set; } public string MovieName { get; set; } public virtual ICollection<Schedule> Schedules { get; set; } } 在日程表/索引中,我想显示日程表中包含MovieID的电影列表 ScheduleControler

我有两张桌子:电影和时间表

电影公司

public class Movie
{
    public int MovieID { get; set; }
    public string MovieName { get; set; }      

    public virtual ICollection<Schedule> Schedules { get; set; }

}
在日程表/索引中,我想显示日程表中包含MovieID的电影列表

ScheduleControler.cs

    public ActionResult Index()
    {
        CinemaContext db = new CinemaContext();

        var moviename = (from m in db.Movies
                        join s in db.Schedules on m.MovieID equals s.MovieID
                        orderby m.MovieName descending
                        select new {
                            MovieName=m.MovieName
                        }).ToList();

        return View(moviename);
    }
然而,当我试着像下面这样做时,它不起作用

@using Booking_Ticket_Management_System.Model;
@model IEnumerable<Schedule>

@{
ViewBag.Title = "Choose movies";
} 

<h2>Index</h2>
<div>
<ul>
    @foreach(Schedule moviename in @Model)
    {
        <li>
            @moviename
        </li>
    }
</ul>
</div>
@使用订票管理系统.Model;
@模型IEnumerable
@{
ViewBag.Title=“选择电影”;
} 
指数
    @foreach(在@Model中安排moviename) {
  • @电影名称
  • }

请帮忙

将具有属性
MovieName
的匿名对象投影到视图,而不是
IEnumerable
。您需要在视图中引用该属性

@foreach(moviename in @Model)
{
    <li>
        @moviename.MovieName
    </li>
}
@foreach(moviename在@Model中)
{
  • @moviename.moviename
  • }
    将带有属性
    MovieName
    的匿名对象投影到视图,而不是
    IEnumerable
    。您需要在视图中引用该属性

    @foreach(moviename in @Model)
    {
        <li>
            @moviename.MovieName
        </li>
    }
    
    @foreach(moviename在@Model中)
    {
    
  • @moviename.moviename
  • }
    将带有属性
    MovieName
    的匿名对象投影到视图,而不是
    IEnumerable
    。您需要在视图中引用该属性

    @foreach(moviename in @Model)
    {
        <li>
            @moviename.MovieName
        </li>
    }
    
    @foreach(moviename在@Model中)
    {
    
  • @moviename.moviename
  • }
    将带有属性
    MovieName
    的匿名对象投影到视图,而不是
    IEnumerable
    。您需要在视图中引用该属性

    @foreach(moviename in @Model)
    {
        <li>
            @moviename.MovieName
        </li>
    }
    
    @foreach(moviename在@Model中)
    {
    
  • @moviename.moviename
  • }
    moviename
    是匿名对象的
    列表(
    new{moviename=m.moviename}
    )。。。但是视图需要一个
    IEnumerable

    更改查询以选择包含电影的日程安排

    using System.Data.Entity;
    // ....
    var schedules = db.Schedules.Include(s => s.Movie)
                        .OrderByDescending(s => s.Movie.MovieName)
                        .ToList();
    return View(schedules);
    
    看法

    看法

    @使用订票管理系统.Model;
    @模型IEnumerable
    @{
    ViewBag.Title=“选择电影”;
    } 
    指数
    
      @foreach(@Model中的字符串moviename) {
    • @电影名称
    • }

    moviename
    是匿名对象的
    列表(
    new{moviename=m.moviename}
    )。。。但是视图需要一个
    IEnumerable

    更改查询以选择包含电影的日程安排

    using System.Data.Entity;
    // ....
    var schedules = db.Schedules.Include(s => s.Movie)
                        .OrderByDescending(s => s.Movie.MovieName)
                        .ToList();
    return View(schedules);
    
    看法

    看法

    @使用订票管理系统.Model;
    @模型IEnumerable
    @{
    ViewBag.Title=“选择电影”;
    } 
    指数
    
      @foreach(@Model中的字符串moviename) {
    • @电影名称
    • }

    moviename
    是匿名对象的
    列表(
    new{moviename=m.moviename}
    )。。。但是视图需要一个
    IEnumerable

    更改查询以选择包含电影的日程安排

    using System.Data.Entity;
    // ....
    var schedules = db.Schedules.Include(s => s.Movie)
                        .OrderByDescending(s => s.Movie.MovieName)
                        .ToList();
    return View(schedules);
    
    看法

    看法

    @使用订票管理系统.Model;
    @模型IEnumerable
    @{
    ViewBag.Title=“选择电影”;
    } 
    指数
    
      @foreach(@Model中的字符串moviename) {
    • @电影名称
    • }

    moviename
    是匿名对象的
    列表(
    new{moviename=m.moviename}
    )。。。但是视图需要一个
    IEnumerable

    更改查询以选择包含电影的日程安排

    using System.Data.Entity;
    // ....
    var schedules = db.Schedules.Include(s => s.Movie)
                        .OrderByDescending(s => s.Movie.MovieName)
                        .ToList();
    return View(schedules);
    
    看法

    看法

    @使用订票管理系统.Model;
    @模型IEnumerable
    @{
    ViewBag.Title=“选择电影”;
    } 
    指数
    
      @foreach(@Model中的字符串moviename) {
    • @电影名称
    • }

    但是,MovieName不是Schedule的属性,而是Movie。因此,我不能像@moviename.movienamese code
    select new{moviename=m.moviename}
    那样创建一个新的匿名对象,而不是一个
    Schedule
    。然而,moviename不是Schedule的属性,而是Movie。因此,我不能像@moviename.movienamese code
    select new{moviename=m.moviename}
    那样创建一个新的匿名对象,而不是一个
    Schedule
    。然而,moviename不是Schedule的属性,而是Movie。因此,我不能像@moviename.movienamese code
    select new{moviename=m.moviename}
    那样创建一个新的匿名对象,而不是一个
    Schedule
    。然而,moviename不是Schedule的属性,而是Movie。因此,我不能像@moviename.movienamite code
    select new{moviename=m.moviename}
    那样创建一个新的匿名对象,而不是一个
    Schedule
    。当我尝试您的第一个建议时,出现了一个错误:“无法将lambda表达式转换为'string'类型,因为它不是委托类型”在s=>s.movie行,确保使用System.Data.Entity包含
    向上。。。我将更新我的答案以反映这一点。您也可以使用
    .Include(“Movie”)
    来代替。当我尝试您的第一个建议时,在s=>s.Movie行出现错误:“无法将lambda表达式转换为类型'string',因为它不是委托类型”。请确保使用System.Data.Entity包含
    向上。。。我将更新我的答案以反映这一点。您也可以使用
    .Include(“Movie”)
    来代替。当我尝试您的第一个建议时,在s=>s.Movie行出现错误:“无法将lambda表达式转换为类型'string',因为它不是委托类型”。请确保使用System.Data.Entity包含
    向上。。。我将更新我的答案以反映这一点。您也可以使用
    .Include(“Movie”)
    来代替。当我尝试您的第一个建议时,在s=>s.Movie行出现错误:“无法将lambda表达式转换为类型'string',因为它不是委托类型”。请确保使用System.Data.Entity包含
    向上。。。我会帮你的