时间:2010-02-09 11:38:38

标签: asp.net-mvc drop-down-menu

我对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时,没有任何选择。怎么了?

2 个答案:

答案 0 :(得分:2)

我能够自己解决这个问题。

正如您在我的View中看到的,我有一个名为“SavingType”的DropDownList,它被绑定到Model.SavingType。除了选定的值,一切正常。我唯一做的就是改变了下拉列表的名称(当然还有链接,如标签for =“SavingTypeList”)

答案 1 :(得分:0)

此问题至少从MVC 1.0开始。

问题:当DropDownList Name与绑定到它的对象名称具有相同的值时,将不会在结果中选择所选选项。

解决方案:名称绑定对象不同,例如在您的情况下为Model.SavingTypeList。 重命名DDL名称不是首选,因为您可能会在表单提交后丢失绑定。