我使用 Html.DropDownList(string NameSelectListInViewData) 方法创建了一个 DropDown。这会生成具有正确值的有效 Select 输入。一切都很好。
然而,在提交时,源 SelectList 中的值未绑定。
案例: ViewData.SearchBag.FamilyCodes:
public SelectList FamilyCodes { get; set; }
生成下拉列表的 Html:
<%=Html.DropDownList("SearchBag.FamilyCodes")%>
生成的html:
<select id="SearchBag.FamilyCodes" name="SearchBag.FamilyCodes">
<option value=" ">Any</option>
<option value="A">BLUE</option>
<option value="B">BLACK</option>
<option value="C">BEIGE</option>
<option value="G">GREEN</option>
<option value="O">ORANGE</option>
<option value="P">PURPLE</option>
<option value="R">RED</option>
<option value="S">GRAY</option>
<option value="U">BROWN</option>
<option value="W">WHITE</option>
<option value="Y">YELLOW</option>
</select>
在我的控制器中,我有一个带有参数 searchBag 的操作。
public ActionResult AdvancedSearch(SearchBag searchBag) {
//Do Stuff with parameters in searchBag
return View("AdvancedSearch", searchViewData);
}
所有其他字段都绑定得很好,只有选择框没有。有任何想法吗?
更新
对于未来的读者来说,阅读这篇博文可能是值得的: http: //haacked.com/archive/0001/01/01/model-binding-to-a-list.aspx