2011-03-10 2 views
3

다음 ViewModel 있고 서브 클래스 (LogOnModel, ChangePasswordModel) 바인딩 할 사용자 지정 바인더를 만들고 싶습니다. 복잡한 유형의 MVC 3 사용자 정의 모델 바인더

public class LogOnViewModel 
{ 
    public string NextStep { get; set; } 
    public string PreviousStep { get; set; } 
    public string ReturnUrl { get; set; } 
    public bool MustChangePassword { get; set; } 
    public bool MustAgreeNewPrivacyStatement { get; set; } 
    public LogOnModel logOnModel { get; set; } 
    public ChangePasswordModel changePasswordModel { get; set; } 
} 

나는 다시 내 컨트롤러에 전체 VALIDATED 모델 (ModelState이 채워) 얻을 수 있었다 결코 내 사용자 지정 바인더를 만들 수 없었다 (DefaultModelBinder에서 상속)하지만. 그것은 단순한 타입 (문자열, 부울, ....)에서는 잘 작동하지만 복잡한 타입 (서브 클래스)에서는 좀 더 복잡합니다.

MVC 3 내 질문에 대한 답이 없거나 다른 사람이 DefaultModelbinder를 재정 의하여 하위 클래스를 바인딩 할 수 있었습니까?

감사합니다, 미셸

+0

미쉘, 나는 당신이 무엇을 요구하고 있는지 정말로 이해하지 못합니다. 질문을 바꿔 말할 수 있습니까? – neontapir

+1

내 LogOnViewModel (하위 클래스 포함)을 바인드하기위한 사용자 정의 바인더를 만들고 싶습니다. 서브 클래스를 바인드 할 수 없습니다. –

답변

0

당신은뿐만 아니라 LogOnModelChangePasswordModel에 대한 사용자 정의 모델 바인더를 만들어야합니다; 사용자 정의 모델 바인더는 복잡한 유형을 바인드하는 방법을 자동으로 알지 못합니다.