0

저는 ASP.NET MVC에 새로운 것이므로 제 질문이 의미가 있기를 바랍니다. 내 모델로 POCO 개체를 사용하고 있습니다. 양식이 제출 될 때 MVC는 내 비즈니스 개체의 새 인스턴스를 만들고 양식의 속성을 자동으로 채울 수 있다는 것을 알고 있습니다. 나는 다음과 같은 코드를 사용하여 새 인스턴스를 만들 수 있도록인스턴스를 만들 때 내 종속성 리졸버를 호출하는 ASP.NET MVC?

나는 의존성 주입을 사용하여 다음

DependencyResolver.Current.CreateInstance(Of IBusObject) 

가 어떻게 ASP.NET MVC 대신 사용하여 새 인스턴스를 만들려고의이 메소드를 호출 할 수 있습니다 " 새로운 "구체적인 클래스의 키워드?

+0

자세히보기에 경량보기 모델을 사용하여보기로 보내고 정보를 다시받을 수 있습니다. 이렇게하면보다 깔끔한 바인딩이 가능하며 UI 관련 요소 인 유효성 검사 속성을 적용 할 수 있습니다. 이러한 뷰 모델에는 DI가 포함되지 않아야하므로 사용자 정의 모델 바인더를 만들 필요가 없습니다. AutoMapper –

+0

@Rob을 사용하여 POCO 클래스에서 모델을 볼 수 있습니다. IDataErrorInfo를 구현하여 유효성 검사 오류를 전달하기 위해 비즈니스 개체를 변경했습니다. 뷰 모델을 사용하는 경우 IDataErrorInfo 구현을 뷰 모델로 이동해야하는지 알고 있습니까? – adam0101

+0

뷰 모델 접근 방식을 채택한다면 자연스럽지 않은 검증이라고 생각합니다. MVC 프레임 워크는 이것을 사용하여 모델 바인더에서 바인딩 동작을 유도합니다. –

답변

3

MVC 소스 코드를 보면 모델 유형의 인스턴스를 만들 때 의존성 분석을 사용하지 않기 때문에 원하는 것을 얻을 수는 없지만 원하는대로 만들 수는 있습니다. DependencyResolver를 인식하는 자체 모델 바인더.

+0

어디에서 사용자 정의 모델 바인더를 저장해야합니까? – adam0101

+0

모델 바인딩은 UI 관심사이므로 웹 응용 프로그램 프로젝트에 광산을 저장합니다. 모델 바인더를 위해 프로젝트에서 특정 폴더를 만듭니다. –

2

기본 모델 바인더에서 파생 된 사용자 지정 모델 바인더를 작성하고 CreateModel 메서드를 재정 의하여 사용자 지정 인스턴스를 제공 할 수 있습니다.

+0

사용자 정의 모델 바인더는 어디에 저장해야합니까? – adam0101

+0

@ adam0101, 사용자 정의 모델 바인더 *를 저장하면 무엇을 의미합니까? 웹 계층에서 일반적으로 정의되는 클래스입니다. –

+0

파일을 어디에 저장해야하는지 의미합니다. MVC가 만드는 모델 폴더에 있습니까? 또는 그것은 중요하지 않습니까? – adam0101

관련 문제