MVC DropDownListFor() - InvalidOperationException

时间:2014-05-14 02:15:10

标签: c# asp.net-mvc

我对此非常困惑,我觉得我必须遗漏一些非常明显的东西。

我有一个包含以下属性的视图模型:

public class ExampleModel
{
    public int CourseId { get; set; }
    public List<SelectListItem> CourseList { get; set; }
}

在我看来,我以下列方式使用Html.DropDownListFor()辅助方法:

@Html.DropDownListFor(m => m.CourseId, Model.CourseList)

这适用于初始页面加载。然而,当我单击提交,并且表单中的某个地方出现错误时,我的控制器会再次尝试加载表单视图以显示错误,并且我收到此异常:

The ViewData item that has the key 'CourseId' is of type
'System.Int32' but must be of type 'IEnumerable<SelectListItem>'.

突出显示以下行:

@Html.DropDownListFor(m => m.CourseId, Model.CourseList)

我的问题很简单:为什么?为什么CourseId需要IEnumerableSelectListItem才能成为该方法中的第一个参数?我已经检查了该方法的所有可用签名,并且 none IEnumerable SelectListItem作为第一个参数。那是什么给出了什么?

1 个答案:

答案 0 :(得分:0)

我想通了......呃。我不知道为什么 是我得到的错误,但问题是我的CourseList第二次没有被填充,因此是空的。修复了修复错误的问题。

至于为什么错误信息是如此偏离基础,我仍然不确定。