我在MVC3应用程序中有以下下拉列表,并且所选项目未显示值。我的下拉列表包含在自定义类的列表中。我的观看代码如下。
...
for (int i = 0; i < Model.PartAttributes.Count; i++)
{
if (Model.PartAttributes[i].IsActive)
{
<div class="row inline-inputs">
<label class="span5">@Model.PartAttributes[i].DisplayName:</label>
@Html.DropDownListFor(m => m.PartAttributes[i].Value, Model.PartAttributes[i].PartList, "Choose Part")
@Html.TextBoxFor(model => Model.PartAttributes[i].Value, new { @class = "mini" })
@Html.ValidationMessageFor(model => Model.PartAttributes[i].Value)
@Html.HiddenFor(model => model.PartAttributes[i].AttributeName)
</div>
}
}
...
下拉框下方的文本框正确填充,列表选项正确填充。所选选项位于要选择的选项列表中。我能做错什么?
答案 0 :(得分:8)
尝试这样:
@Html.DropDownListFor(
m => m.PartAttributes[i].Value,
new SelectList(
Model.PartAttributes[i].PartList,
"Value",
"Text",
Model.PartAttributes[i].Value
),
"Choose Part"
)
AFAIK如果此lambda表达式表示带有集合的复杂嵌套属性,则DropDownListFor
帮助程序无法确定作为第一个参数传递的lambda表达式中的选定值。但是使用简单的属性:m => m.FooBar
。我知道它有点糟糕,但希望这将在未来的版本中修复。