Asp.net mvc 4 @Html.dropdownlist用于在填充ViewModel值的情况下返回空值

Asp.net mvc 4 @Html.dropdownlist用于在填充ViewModel值的情况下返回空值,asp.net-mvc-4,http-post,dbcontext,html.dropdownlistfor,Asp.net Mvc 4,Http Post,Dbcontext,Html.dropdownlistfor,我使用ViewModel将详细信息传递给HTTPPost操作,所有字段都成功保存到数据库中,包括下拉列表值,但抛出的错误是该值不能为null 我的下拉列表代码如下: @Html.DropDownListFor(c => c.Content.ContentTypeID, new SelectList(Model.ContentTypeList, "ContentTypeID","ContentTypeString", Model.ContentTypeLis

我使用ViewModel将详细信息传递给HTTPPost操作,所有字段都成功保存到数据库中,包括下拉列表值,但抛出的错误是该值不能为null

我的下拉列表代码如下:

@Html.DropDownListFor(c => c.Content.ContentTypeID, new SelectList(Model.ContentTypeList,
                 "ContentTypeID","ContentTypeString", Model.ContentTypeList.First().ContentTypeID))
Model.ContentTypeList返回内容类型表中找到的所有内容类型的列表,该表有两个字段:ContentTypeID和ContentTypeString


我正试图使用以下代码将ContentTypeID保存到表中,当它保存时,它向我抛出了一个关于null值的错误,有什么想法吗?

查看您操作的代码应该很有趣。您在控制器中的代码特别是接收发布表单的控制器的方法,该表单用
[HttpPost]
,包括接收到的参数和其中的代码。这样我们可以分析活页夹的情况。模型中的所有字段都已正确设置,我已在调试模式下对此进行了确认,下拉菜单中会触发错误,消息为“值不能为null。参数名称项”,不确定在将内容类型的值ID保存到DBI时发生错误的原因。我无法找出返回空项的原因,因此暂时将其更改为一个文本框,以便我可以继续。现在已成功发布,但当它返回到我预期的同一页时,该字段将返回s为空,但它们仍然填充有以前保存的数据。我在调用视图之前添加了ModelState.Clear(),但这似乎没有达到其他人提到的效果