우선, 모델을 별도의 프로젝트에 넣는 것은 확실히 좋은 생각입니다. 아시다시피 이것은 사소한 일입니다.
컨트롤러 및 뷰와 관련하여 특정 응용 프로그램에서 그렇게해야 할 특별한 필요성이있을 수 있지만 대부분의 기본 프로젝트에서 분리하는 것의 분명한 이점은 없습니다.
이 작업을 선택하면 프레임 워크에 컨트롤러를 찾는 방법을 알려야합니다. 이를 수행하는 기본 방법은 자체 ControllerFactory를 제공하는 것입니다. 이것이 어떻게 수행되는지에 대한 아이디어를 얻으려면 DefaultControllerFactory의 소스 코드를 살펴볼 수 있습니다. 이 클래스를 하위 형식으로 지정하고 GetControllerType (string controllerName) 메서드를 재정의하면 원하는 작업을 수행하기에 충분할 수 있습니다.
사용자 지정 ControllerFactory를 만든 후에는 global.asax의 Application_Start에 다음 줄을 추가하여 프레임 워크에 찾을 위치를 알려줍니다.
ControllerBuilder.Current.SetControllerFactory(new MyControllerFactory());
업데이트 : 자세한 내용은 이 게시물 과 링크 된 게시물을 읽으십시오 . 해당 게시물에 대한 Phil Haack의 의견을 참조하십시오.
ControllerBuilder.Current.DefaultNamespaces.Add(
"ExternalAssembly.Controllers");
... 완벽한 솔루션은 아니지만 간단한 경우에는 충분할 수 있습니다.