显示用于创建对象的复选框列表

本文关键字:复选框 列表 创建对象 用于 显示 | 更新日期: 2023-09-27 18:03:03

我有两个类,StudentCourse,我使用Entity Framework在它们之间建立了一对多关系。当我要创建一个新的学生,我想显示所有注册的Courses的名称列表,然后从该列表中选择相应的课程到Student我正在创建,我想用复选框显示。(如果有的话,我接受以一种不同的、更原始的方式来做这件事的建议)

这是我的类:

  public class Student: Person
    {
        public float Average { get; set; }
        public virtual List<Course> Courses { get; set; }
    }
  public class Course
    {
        public int CourseID { get; set; }
        [Required]
        public string Name { get; set; }
        public int Years { get; set; }
        public float Difficulty { get; set; }
        public int StudentID { get; set; }
        public virtual Student Student { get; set; }
    }

这是我用来显示视图的get方法

public ActionResult Create()
        {
            ViewBag.ListCourses = db.Courses.ToList();
            return View();
        }

和View:

@using (Html.BeginForm()) 
{
    @Html.AntiForgeryToken()
  @foreach (var item in ViewBag.ListCourses)
        {

 //Checkbox or CheckboxFor???? What goes here???...
            Html.CheckBox();
        }
<div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </div>
}

显示用于创建对象的复选框列表

多亏了这些链接,这是我最后的HTTPost方法:

 [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult Create( VMSalesman vmsalesman)
        {
            if (ModelState.IsValid)
            {
                List<Customer> list = new List<Customer>();
                for (int i = 0; i < vmsalesman.CustomerList.Count; i++)
                {
                    if (vmsalesman.CustomerList[i].IsSelected==true)
                    {
                        int n = vmsalesman.CustomerList[i].VMCustomerID;
                        list.Add(db.Customers.Where(c => c.CustomerID == n).First());
                    }   
                }
                Salesman salesman = new Salesman() {
                    Name = vmsalesman.Name,
                    LastName = vmsalesman.LastName,
                    Location = vmsalesman.Location,
                    CustomersList = list
                };
                db.Salesmen.Add(salesman);
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(vmsalesman);
        }