2013-06-03 2 views
0

상속 될 수있는 유형을 가리키는 목록이 정의 된 목록이있는 개체가 있습니다. 내가 이해하는 것 MVC의 기본 모델 바인더는 폼에서이 배열로 다시 데이터를 읽을 때 항상 기본 유형을 인스턴스화하므로 기본적으로 기본 유형의 목록을 갖습니다.Asp.NET MVC 모델 바인딩이 목록 항목의 값을 선택하지 않음

그래서 내 모델 바인더를 사용하고 CreateModel을 오버라이드하여 특정 유형 (예 : 숨겨진 필드)을 인스턴스화해야합니다. 나는이 작업을 수행하고

bindingContext.ValueProvider.GetValue("ModelType") 

를 사용할 때 피들러를 사용을 통해 내가 그 양식 값 Settings[0].ModelType 내 개체 유형을 포함하고 내가 인스턴스에 CreateModel이 값 올바른 유형을 필요로 볼 수 있지만 그러나 그것은 항상 null를 반환합니다.

+0

더 많은 정보 저는 모델 바인더의 "범위"(미안하지만 그것을 무엇이라고 부르는 지 생각할 수 없습니다)가 엉망이라고 생각합니다. 객체가 인스턴스화 단계에있는 경우 양식의 Settings [0] 부분에 있어야하지만 모든 부모 객체 양식 데이터를 다시 가져 오는 것으로 보입니다. – Barry

답변

0

해결했습니다. 배열 객체는 각 항목에 따라 입력 할 필요가 있다면 당신이 그것을 할 수있는 표준 방법 인 경우 잘 모르겠어요 배열 항목

bindingContext.ValueProvider.GetValue(bindingContext.ModelName + ".ModelType") 

"에"얻기 위해 다음 호출을 사용해야합니다. 누구든지 더 좋은 제안이 있으면 언제든지 추가 할 수 있습니다.