3

저는 Asp에서 첫 번째 응용 프로그램을 개발 중입니다. Asp.NET MVC 3 환경을 사용하고 있습니다. 단일 매개 변수가있는 컨트롤러 동작이 있습니다. 이 매개 변수의 유형은 복합 개체입니다.bindmodel 대 createmodel ASP mvc 3

public ActionResult MyAction(ComplexObj obj) { 
    //TODO: using obj 
} 

나는 ModelBinder를 클래스를 사용하고 있습니다. 그러나 BindModel 함수 또는 CreateModel 함수를 재정의해야하는지 잘 모르겠습니다.

두 기능의 차이점은 무엇이며 루스터가 정확하게 사용하는 경우입니다.

감사합니다.

+0

왜 맞춤 모델 바인더를 원하십니까? – VJAI

답변

6

두 기능의 차이점은 무엇이며 언제 이 루터에 의해 정확하게 사용되었는지 알아보십시오.

BindModel 모델 바인딩 과정에서 모든 작업을 수행 길에이 전달 유형에 따라 모델의 인스턴스를 제공하는 CreateModel 메서드를 호출하는 주요 방법이다. CreateModel 방법은

Activator.CreateInstance(typeToCreate); 

보통 당신이 BindModel 메서드를 재정의하기위한 가야 당신이 당신의 요구 사항을 말을하지 않는 한 그것의, 그것은 dictionary 또는 list 또는 간단한 모델인지 모델 유형을 확인하고 마지막으로 호출하여 인스턴스를 반환 어느 쪽을 오버라이드 할 것인지를 결정하라. 만약 당신이 신경 쓰는 것만이 모델 인스턴스가 생성되는 방식을 오버라이드하는 것이라면 CreateModel에 가야합니다.

+1

답을 생각해보십시오. 나는 "F11"이라는 BindModel 메쏘드 안에 들어가려고 노력했다. 구현이 없기 때문에 불가능했습니다. 내가 C#에서 초보자임을 이해할 수 있습니다. -/어떻게 그 자체 유용한 정보 (CreateModel이 BindModel에 의해 호출되는지)를 어떻게 발견 할 수 있습니까? – minchiya