如何显示另一个表中的数据

时间:2017-03-05 21:48:32

标签: c# asp.net asp.net-mvc foreign-keys

我知道这个问题可能很愚蠢,但我对ASP.NET完全陌生,并花了一整天时间试图解决这个问题。这是我的问题:

我有两个型号

1

namespace WebApplication.Models
{
    public class Student
    {       
    [Key]
    public int Id { get; set; }
    public string Name { get; set; }
    public string Email { get; set; }

    public string DeptID { get; set; }

    public Dept dept { get; set; }
    } 
}

2

namespace WebApplication.Models
{
   public class Dept
   {
    [Key]
    public int DeptId { get; set; }
    public string Name { get; set; }

    public ICollection<Student> students { get; set; }
    }
}

我想用所有学生数据和部门名称制作视图。我该怎么办?

1 个答案:

答案 0 :(得分:1)

我希望您使用实体框架linq查询并拥有一个带有上述两个实体的dbContext。

现在,您可以通过控制器上的部门获取所有学生数据,如下所示:

IEnumerable<Student> students = dbContextObject.Students.Include(x=>x.dept);

它将把所有学生的记录带到学生班的部门财产部门。现在,您可以将此学生列表返回到您的视图,在视图中,您将在视图模型中收到它:

@model IEnumerable<Student>

现在在你的视图中使用@foreach这样的tr来为学生姓名和部门生成td:

@foreach(var item in Model)
{
   <td>@item.Name</td>
   <td>@item.dept.Name</td>
}

它会在您的视图中显示所有学生姓名及其部门名称。希望这会对你有所帮助。