显示用于创建对象的复选框列表
本文关键字:复选框 列表 创建对象 用于 显示 | 更新日期: 2023-09-27 18:03:03
我有两个类,Student
和Course
,我使用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);
}