当iam进行填充中间表时,例如当学生想要在我的视图中添加一个coad时,为seletec学生提供DropDownList,所有课程的DropDownList和所有学生的DropDownList
table sample
{
id,
studentid,
courseid,
grade,
studentTeacher
}
我的控制器
ViewBag.Student= new SelectList(db.Course.Where(c => c.StudentId== id), "StudentId","FullName");
ViewBag.CourseId = new SelectList(db.Course, "CourseId ", "Name");
ViewBag.StudentId = new SelectList(db.Student, "StudentId","FullName");
在我看来
@Html.DropDownList("Student")
@Html.DropDownList("CourseId ")
@Html.DropDownList("StudentId ", string.Empty)
我得到一个错误它说没有类型'IEnumerable'的ViewData项具有键'Student'。
所以我猜是正在寻找一个关键的StudentId,所以问题是我怎么能告诉DropDownList从(学生)那里看那个键(StudentId)
答案 0 :(得分:0)
没有类型为'IEnumerable'的ViewData项具有键'Student'。
这意味着您没有向下拉菜单提供任何SelectListItem
集合(假设任何数据)。 ASP.NET MVC自动尝试使用与命名属性相同的键来查找ViewData集合中的数据。在你的情况下,它是'学生',因为你已经为@Html.DropDownList("Student")
提供了这样的属性名称。
尝试将数据设置为ViewData["Student"]
集合,或直接填充:
@Html.DropDownList("Student", ViewBag.Student)
// etc.