2009-08-28 5 views
1

기본 ASP.NET MVC 프로젝트는 제가 작업 한 소수의 MVC 프로젝트에서 사용 해왔다는 것을 모르는 "Models"디렉토리를 설정합니다. 일반적으로 비즈니스 로직 클래스를 저장하는 별도의 '라이브러리'프로젝트가 있습니다.ASP.NET MVC "모델"디렉토리 : 무엇이 좋은가요?

이제 궁금합니다. 기본 ASP.NET "Models"디렉토리를 사용하지 않음으로써 큰 ​​것을 놓치고 있습니까?이 기능을 잘 사용하는 기본 제공 기능이 있습니까?

답변

8

저는 일반적으로 내보기 모델에이 디렉토리를 사용합니다. 도메인 모델은 별도의 프로젝트/어셈블리에 있지만보기 모델은 웹 프로젝트와 함께 모델 디렉토리에 보관됩니다. 이 디렉토리에 모델을 추가하면 자동으로 * .Models 네임 스페이스에 모델이 설정됩니다. 나는 일반적으로 별도의 프로젝트/어셈블리에 내 모델을 유지하기 때문에

2

폴더 자체에는 "특별한"기능이 없지만 모델 클래스를 유지할 위치 (즉, ORM 생성 (LINQ)와 같은 데이터 클래스)에 대한 제안이됩니다.

예제 클래스는 모델 기본 데이터 엔티티 인 고객, 주소, 주문 등입니다.

1

은 내가 모두 WidgetFoosit을 표시하는보기가 있다면, 난 그냥 WidgetFoositContext에서 그들을 마무리처럼, UI 특정 클래스를 저장하기 위해 Models 폴더를 사용 목적.

public class WidgetFoositContext { 
    public Widget Widget { get; } 
    public Foosit Foosit { get; } 
} 
1

models 디렉토리를 사용하여 비즈니스 객체의 구성을 저장합니다. 제품 컨트롤러에있는 경우 ProductViewData 클래스를 만들어 제품 자체를 저장하고 권장 제품 목록과 해당 제품에 대한 리뷰 목록을 작성합니다.

필자는 비즈니스 개체를 매우 단순하게 유지하고 모델 디렉터리에서 필자가보기에 필요한 다양한 형식의 데이터를 결합 할 수있는 곳을 선호합니다.

5

당신은 아무것도 놓치지 않았습니다. 내 의견으로는 폴더가 생성되는 유일한 이유는 단순히 ASP.NET MVC이고 "M", "V"및 "C"에 대한 폴더가 필요하기 때문입니다. 기본적으로 ASP.NET MVC는 "M"을 구현하는 방법을 알려주지 않으므로 모델 클래스를 배치 할 위치에 대한 제안으로 빈 폴더를 제공합니다. 이 폴더를 삭제하고 원하는 곳에 모델을 놓을 수 있습니다.