2013-09-25 91 views
0

對不起,這可能是非常明顯的,但我只需要檢查。我在包含相關信息的嵌套類中有一個類。該類是單數,不在列表或任何其他MVC不會綁定到該字段。MVC DropDownListFor綁定在嵌套類

型號

public class Car 
{ 
    public GloveBoxDetail GloveBox = new GloveBoxDetail(); 
} 

public class GloveBoxDetail 
{ 
    public bool isLockable{get;set;} 
} 

查看

@Html.DropDownListFor(model => model.GloveBox.isLockable, new SelectList(...)) 

難道我將不得不手動創建DropDownList的?

感謝

克里斯

+0

是不是一個下拉列表僅用於收藏?有什麼選擇可供選擇? – gunr2171

+0

@ gunr2171常見誤解:下拉菜單用於選擇單個值,而不是集合。該集合必須來自其他地方,這是在他的代碼 – Kippie

+0

@Kippie的''新的SelectList()''中指出的,我站出來了。謝謝。 – gunr2171

回答

0

管理昨晚弄明白創建自己的自定義HTML助手

檢查這個職位。它僅用於顯示數據,因此不需要更新模型,所以我不需要擔心綁定在回發上。我通過將選擇列表的「選定值」設置爲模型來解決這個問題,雖然很髒,但它起作用。

感謝

克里斯

0

可以綁定任何IEnumarable爲DropDownList

請嘗試這樣

在控制器

List<SelectListItem> yesno=new List<SelectListItem>(); 
yesno.add(new SelectListItem("Yes","Yes",true); 
yesno.add(new SelectListItem("No","No"); 

ViewBag.YesNoList=yesno; 

在查看

@Html.DropDownListFor(model => model.GloveBox.isLockable, 
     IEnumbarable<SelectListItem>(ViewBag.YesNoList)) 

在這種情況下,最好使用@Html.CheckboxFor。如果您需要Nullable<bool>那麼你可能需要在creating custom helper