如何将属性设置为@ Html.DropDownList

时间:2012-02-08 22:11:00

标签: asp.net-mvc asp.net-mvc-3 razor

当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)

1 个答案:

答案 0 :(得分:0)

  

没有类型为'IEnumerable'的ViewData项具有键'Student'。

这意味着您没有向下拉菜单提供任何SelectListItem集合(假设任何数据)。 ASP.NET MVC自动尝试使用与命名属性相同的键来查找ViewData集合中的数据。在你的情况下,它是'学生',因为你已经为@Html.DropDownList("Student")提供了这样的属性名称。

尝试将数据设置为ViewData["Student"]集合,或直接填充:

@Html.DropDownList("Student", ViewBag.Student)
// etc.