我对ASP.Net MVC(2.0 RC)DropDownList感到困惑。它似乎不接受我选择的项目。
这是我的SelectListItem列表(它是在循环内创建的.Selected为boolean)
savingTypesList.Add(new SelectListItem() { Selected = selected, Text = type.Name, Value = "" + type.SavingTypeId });
创建SelectList本身..
return new SelectList(savingTypesList, "Value", "Text", (string)selected);
我的观点..
<p>
<label for="SavingType">Saving type</label>
<%= Html.DropDownList("SavingType", Model.SavingType, "-- select a parameter saving type --", "")%>
<%= Html.ValidationMessage("SavingType", "*")%>
</p>
当我查看返回的SelectList的详细信息时,它会显示以下信息
alt text http://www.tx3.fi/selected.PNG
如您所见,SelectedValue设置正确,并且与Items数组中的项匹配。当我检查实际生成的HTML时,没有任何选择。怎么了?
答案 0 :(得分:2)
我能够自己解决这个问题。
正如您在我的View中看到的,我有一个名为“SavingType”的DropDownList,它被绑定到Model.SavingType。除了选定的值,一切正常。我唯一做的就是改变了下拉列表的名称(当然还有链接,如标签for =“SavingTypeList”)
答案 1 :(得分:0)
此问题至少从MVC 1.0开始。
问题:当DropDownList Name与绑定到它的对象名称具有相同的值时,将不会在结果中选择所选选项。
解决方案:名称绑定对象不同,例如在您的情况下为Model.SavingTypeList。 重命名DDL名称不是首选,因为您可能会在表单提交后丢失绑定。