2012-10-11 31 views
0

我有一个注册表使用一个称为registerViewModel的ViewModel。我正在尝试添加一个允许用户选择评分的下拉菜单。该级数据应该来自一个名为“GradeMatrix”SelectList没有被填充

在我的账户控制器我有以下的模型 -

[HttpPost] 
     public ActionResult Register(RegisterViewModel viewModel) 
     { 
      PopulateGradeDropDownList(viewModel.GradeID); 

我也有 -

private void PopulateGradeDropDownList(object selectedGrade = null) 
     { 
      var gradeQuery = from d in db.GradeMatrix 
          orderby d.GradeName 
          select d; 

      ViewBag.GradeID = new SelectList(gradeQuery, "GradeID", "GradeName", selectedGrade); 

     } 

在我看来,我有 -

@ Html.DropDownList( “GradeID” 的String.Empty)

当我CL ick在我的注册链接我得到以下错误 -

There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key 'GradeID'. 

有什么我失踪?

回答

0

视图代码应该是:

@Html.DropDownList(string.Empty, (SelectList)ViewBag.GradeID) 
+0

谢谢,但给我一个不同的错误 - “System.Web.Mvc.HtmlHelper ”具有名为没有适用的方法“的DropDownList”但似乎有一个名称的扩展方法。扩展方法不能动态分派。考虑转换动态参数或调用扩展方法而不使用扩展方法语法。 –

+0

我更新了代码来解决这个问题。 –

+0

再次感谢,但这给了我值不能为空或空。 参数名称:名称 –