Asp.net mvc 3 Can';t使viewDataField在MVC 3 DropDownList控件中工作

Asp.net mvc 3 Can';t使viewDataField在MVC 3 DropDownList控件中工作,asp.net-mvc-3,drop-down-menu,razor,Asp.net Mvc 3,Drop Down Menu,Razor,我不明白为什么不为此控件设置属性。以下是控制代码: @Html.DropDownList("SetViewModel[" + i + "].Value", new SelectList(@Model.Datasource.Where(c => c.listId == setting.Datasource).Select(c => c.value), "value", "description", setting.Value)) 我继续遇到的错误是:数据绑定:'System.Stri

我不明白为什么不为此控件设置属性。以下是控制代码:

@Html.DropDownList("SetViewModel[" + i + "].Value", new SelectList(@Model.Datasource.Where(c => c.listId == setting.Datasource).Select(c => c.value), "value", "description", setting.Value))

我继续遇到的错误是:数据绑定:'System.String'不包含名为'value'的属性。但是属性名似乎是'value'和'description'。我如何确认我有正确的属性名?Model.Datasource可以追溯到ORM,ORM具有“value”和“description”属性。当我逐步浏览代码并将鼠标悬停在设置上时。Datasource文本中我看到了名为“value”和“description”的属性。我非常困惑。以前有人处理过这个问题吗?谢谢大家!

您试图传递的是一组对象,而不是字符串。

删除
Select
调用。

视图中的代码扭曲是什么?使用视图模型怎么样?使用编辑器模板怎么样?请向我保证,你永远不会写这样的东西。如果这是一个ASP.NET MVC 1.0应用程序,其中没有强类型的帮助程序和编辑器模板,那么你会有借口,但在ASP.NET MVC 3中,这看起来像是犯罪。顺便说一下,
模型不应该有
@
。我知道,我知道。。。相信我,这对我来说也很痛苦。我正在处理一个不可更改的(我将省略细节)遗留数据模型,不幸的是,它需要像这样的反常行为。不到两分钟前。非常感谢。