[asp.net-mvc]显示列表的复选框以创建对象

发布时间: 2017/2/20 21:18:45
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有两节课, 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();
        }

和视图︰

@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>
}

解决方法 1:

由于这些链接我可以做到,这是我最后的 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);
        }
官方微信
官方QQ群
31647020