Asp.net mvc 5 在多对多实体框架6中处理复选框

Asp.net mvc 5 在多对多实体框架6中处理复选框,asp.net-mvc-5,entity-framework-6,Asp.net Mvc 5,Entity Framework 6,我使用的是MVC5,EntityFramwork 6,代码优先的方法 我看到了很多在实体框架中使用checkbox的例子,但我没有看到任何我需要的例子 我将使用这个简单的案例: 我有两门简单的课程和学生,每门课程都有很多学生。每个学生都有许多课程 在EF模型中: 课程是 public class Course { public int ID { get; set; } public string Title { get; set; } public List<Stu

我使用的是MVC5,EntityFramwork 6,代码优先的方法

我看到了很多在实体框架中使用checkbox的例子,但我没有看到任何我需要的例子

我将使用这个简单的案例:

我有两门简单的
课程
学生
,每门课程都有很多学生。每个学生都有许多课程

在EF模型中:

课程是

public class Course
{
    public int ID { get; set; }
    public string Title { get; set; }
    public List<Student> Students { get; set; }
}
公共课
{
公共int ID{get;set;}
公共字符串标题{get;set;}
公共列表学生{get;set;}
}
学生班是

public class Student
{
    public int ID { get; set; }
    public string Name { get; set; }
    public List<Course> Courses { get; set; }
}
公共班级学生
{
公共int ID{get;set;}
公共字符串名称{get;set;}
公共列表课程{get;set;}
}
这将在数据库中生成一个名为
CourseStudents
table的表,该表按预期包含1个复合主键和2个外键

问题是:

我想创建一个简单的
create
视图,其中包含学生姓名和课程列表(显示为复选框),选中的复选框存储在
CourseStudents
表中

如何做到这一点?

提交时 1.创建新的学生对象。 2.将所选课程添加到学生对象课程列表

myStudent.Courses.add(selectedCourse);
  • 添加所有课程后,将学生添加到dbContext并将更改保存到dbContext

    context.students.add(myStudent)
    SaveChanges()

  • 如果该学生已经存在,只需选择该学生并将课程添加到所选学生列表中,然后在提交时将更改保存到dbContext 1.创建新的学生对象。 2.将所选课程添加到学生对象课程列表

    myStudent.Courses.add(selectedCourse);
    
  • 添加所有课程后,将学生添加到dbContext并将更改保存到dbContext

    context.students.add(myStudent)
    SaveChanges()


  • 如果学生已经存在,只需选择它并将课程添加到所选学生列表中,并将更改保存到dbContext

    如何使用复选框,这行代码无效
    @Html.CheckBoxFor(model=>model.courses,new{value=course.ID})@course.Title
    foreach(model.courseVm中的var courseVm){
  • 不能为列表添加复选框。如果要添加复选框,需要为HTML视图创建一个视图模型。在视图模型中,可以将课程列表表示为布尔值列表,并且需要使用for循环
    foreach(var courseVm in model.Coures){
  • 如何使用复选框,这行代码无效
    @Html.CheckBoxFor(model=>model.Courses,new{value=course.ID})@course.Title
    foreach(model.courseVm中的var courseVm){
  • 不能为列表添加复选框。如果要添加复选框,需要为HTML视图创建一个视图模型。在视图模型中,可以将课程列表表示为布尔值列表,并且需要使用for循环
    foreach(var courseVm in model.Coures){
  • 您需要创建视图模型来表示要显示/编辑的内容(并且您的
    CourseVM
    将包含一个属性
    bool IsSelected
    ,以绑定到复选框)。请参阅示例您需要创建视图模型来表示要显示/编辑的内容(并且您的
    CourseVM
    将包含一个属性
    bool IsSelected
    ,用于绑定到复选框)。请参阅示例