2010-02-09 540 views
3

我真的很困惑ASP.Net MVC(2.0 RC)DropDownList。它似乎不接受我选择的项目。另一个DropDownList选择项目问题

这里是我的SelectListItem名单(这是内部循环创建。选择是布尔)

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设置正确,并以项目阵列中的项目相匹配。当我检查实际生成的HTML时,没有任何选择。怎么了?

回答

1

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

正如你可以在我的视图中看到的,我的DropDownList名称为“SavingType”,它被绑定到Model.SavingType。一切工作正常,除了选定的值。我做的唯一的事情是我改变了下拉列表的名称(当然还有指向它的链接,如=“SavingTypeList”的标签)

0

此问题至少从MVC 1.0开始。

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

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