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