关于在视图中创建的主键/外键关系

时间:2015-03-15 01:53:50

标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-4 asp.net-mvc-scaffolding

我正在学习ASP.NET MVC。我创建了有两个表的基本页面。下面是模型文件Courses.cs。

public class Courses
{
    public int ID { get; set; }
    public string CourseName { get; set; }
    public string Description { get; set; }
    public int Duration { get; set; }

    public virtual ICollection<Instructors> Instructors { get; set; }
}

public class Instructors
{
    public int ID { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int CoursesID { get; set; }
    public virtual Courses Courses { get; set; }
}

创建模型后。我添加了控制器,相应视图自动创建 。 现在我在我看来期望的是一个课程 index.cshtml ,字段为

  1. CourseName
  2. 描述
  3. 持续时间
  4. 教师 index.cshtml ,字段为

    1. 名字

    2. CoursesID(它是一个外键,应该链接到课程表的ID(PK)

    3. 现在当我打开讲师 index.cshtml 文件时,我看到的是

      <th>
          @Html.DisplayNameFor(model => model.Courses.CourseName)
      </th>
      

      为什么视图有model.Courses.CourseName之类的内容? 为什么脚手架没有显示以下行为。我期待下面的事情:

      <th>
          @Html.DisplayNameFor(model => model.Courses.CoursesID)
      </th>
      

      有人可以解释一下这种行为吗?

1 个答案:

答案 0 :(得分:0)

视图只能访问您为其建模的类。很可能您正在查看的视图是针对您编写的第一个类进行建模的。查看剃刀顶部的视图,看看有什么。

我怀疑你会看到@model Courses或某些变体。