2013-09-25 3 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 일반적인 오해 : 드롭 다운은 컬렉션이 아닌 단일 값을 선택하는 데 사용됩니다. 컬렉션은 다른 곳에서 가져와야 만합니다. 코드에서 새 SelectList()에 표시됩니다. – Kippie

+0

@Kippie, 나는 고쳐 씁니다. 감사. – gunr2171

답변

0

에 자신의 정의 HTML 도우미

확인이 게시물을 만들어야 할 수도 있습니다. 데이터를 표시하는 데만 모델을 업데이트 할 필요가 없으므로 포스트에 바인딩하는 것에 대해 걱정할 필요가 없습니다. Select List의 "Selected Value"를 더러운 모델로 설정하여 해결했지만 작동합니다.

감사

크리스

0

당신은

보기에 컨트롤러

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

ViewBag.YesNoList=yesno; 

에서이

같은 시도하십시오 DropDownList로 어떤 IEnumarable을 결합 할 수

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

이 경우 @Html.CheckboxFor을 사용하는 것이 더 좋습니다. 당신이 Nullable<bool>이 필요하면 당신은 어젯밤을 알아 내기 위해 관리 creating custom helper