Asp.net mvc 5 在多对多实体框架6中处理复选框
我使用的是MVC5,EntityFramwork 6,代码优先的方法 我看到了很多在实体框架中使用checkbox的例子,但我没有看到任何我需要的例子 我将使用这个简单的案例: 我有两门简单的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
课程
和学生
,每门课程都有很多学生。每个学生都有许多课程
在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);
SaveChanges()
myStudent.Courses.add(selectedCourse);
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
,用于绑定到复选框)。请参阅示例