另一个DropDownList选定项的问题

3

我对ASP.Net MVC(2.0 RC)的DropDownList感到非常困惑。它似乎不接受我的选定项目。

这是我的SelectListItem列表(它是在循环内创建的。Selected为布尔值)

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个回答

2

我已经自己解决了这个问题。

你可以在我的视图上看到,我有一个名为“SavingType”的下拉列表,并将其绑定到Model.SavingType。除了选定的值之外,一切都正常工作。我所做的唯一的事情就是更改下拉列表的名称(当然还有像“label for =”SavingTypeList“这样的链接)


0

这个问题至少从MVC 1.0开始就存在了。

问题:当下拉列表的名称与绑定到它的对象的名称相同时,选择的选项将不会在结果中被选中。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接