与这篇文章IEnumerable model property in an ASP.NET MVC 3 Editor Template类似,我有
模型
public class Student
{
public int StudentId { get; set; }
public string StudentName{ get; set; }
//FYI..Its virtual because of EF relationship
public virtual ICollection<Class> Classes{ get; set; }
}
public class Class
{
public int ClassId { get; set; }
public string ClassName{ get; set; }
}
查看 - EditStudent
@model Student
@Html.TextBoxFor(m => m.StudentName)
//I get the error for following..see below
@Html.EditorFor(m => m.Classes);
学生/编辑模板/班级
@model Class
<div>
@*checkbox here*@
@Html.LabelFor(x => x.ClassName)
</div>
控制器
public ActionResult EditStudent(int id)
{
ViewBag.Classes = repository.GetClasses();
Student student = repository.GetStudent(id);
return View("EditStudent", student);
}
声明 @Html.EditorFor(m => m.Classes); 时查看错误 是..
传入字典的模型项的类型为“System.Collections.Generic.HashSet`1[Class]”,但该字典需要“Class”类型的模型项。
基本上,我想要实现的是显示所有可用类的列表,旁边有一个复选框(我还没有达到那部分代码)。然后检查学生的所有课程是否已注册并允许更改选择。
- 如何显示具有给定模型的复选框列表。
- 我应该将我的 EditorTemplate 与 ViewBag.Classes 绑定(如何?)还是?
- 我还需要在 Post ActionMethod 中获取选定的复选框值。
- 我阅读了一些建议创建 CheckBoxListHelper 的帖子,但应该可以使用 EditorTemplate,因为我需要显示一个简单的列表。
请建议。谢谢。