2009-03-31 8 views
2

시스템에서 조작해야하는 각 테이블마다 별도의 컨트롤러가 있어야합니까?ASP .NET MVC - 컨트롤러 수

/DataTypeA/List --list for A 
/DataTypeA/Create -- create new data 
. 
. 
. 
/DataTypeB/List --list for B 

또는 단지 내에서 별도의 조치가 있어야 다음과 같이

는 예를 들어, 콘텐츠 관리 시스템의 관리 섹션을 설계, 도메인을 찾아 각 구성에 대해 별도의 컨트롤러가 있어야한다 다음과 같이 관리자 컨트롤러

/Admin/DataTypeA -- this lists DataTypeA 
/Admin/DatatypeB -- this lists DataTypeB 
/Admin/DataTypeA_Create -- Create a new DataTypeA 
/Admin/DataTypeB_Create -- Create a new DataTypeB 

답변

3

내 접근 방식은 시스템에서 기본 액터 (테이블)에 대한 새로운 컨트롤러를 만드는 것입니다. 보조 데이터가 연결되는 기본 테이블에 대한 컨트롤러에 의해 업데이트 된 보조 테이블이 종료됩니다. 예를 들어 사용자 컨트롤러가 있고 별도의 UserContact 컨트롤러를 만드는 대신 사용자 컨트롤러의 특정 사용자와 연결된 UserContact 정보를 업데이트하는 작업이 있습니다.

0

기본적으로 변경 사항은 코드 작성 방법과 코드 구성 방법에 따라 다릅니다. DataTypeA가 DataTypeB와 분명히 다른 경우 (즉, 동물 대 자동차) 다른 컨트롤러를 사용하고 싶을 것입니다. 그러나 DataTypeA가 DataTypeB의 하위 집합 (또는 이와 유사) 인 경우 다른 동작이있는 하나의 컨트롤러를 사용합니다.

ASP.NET MVC는 유연성이 뛰어나므로 매우 시원 합니다만 처음에는 융통성이 익사처럼 느껴집니다. 코드 작성을 시작하면 잘못된 경로로 향하고 있는지 알 수 있습니다. MVC에 대한 학습 곡선이 있습니다. 그것으로 가라.

0

대체로 디자인 선택이라고 생각합니다. 명확한 대답은 없다고 생각합니다. 비록 당신이 패턴의 글자를 고수한다면, 컨트롤러 당 하나의 컨트롤러에 대한 옵션이 될 것이라고 생각합니다.

나는 잠시 전에 ASP.NET MVC를 시험해보기 위해 작은 프로토 타입 블로그 시스템을 구성하기 시작했다. (슬프게도 여전히 WIP, 슬프게도), 내가 만든 마지막 결정은 Post에 Comment 컨트롤러를 포함시키는 것이었다. 제어 장치. 나는 분리 된 컨트롤러를 시도한 후에 만 ​​이것을 결정했다. 두 개념이 너무 밀접하게 얽혀 있기 때문에이 방법이 효과적이라고 생각합니다. 블로그 게시물이 없으면 댓글을 달 수 없습니다.

1

베팅 방법은 프레젠테이션 레이어 (이 경우 웹 레이어)에 도착한 후 논리적으로 그룹화하지 말고 논리적으로 그룹화해야합니다. Product W Category 테이블이있는 경우 카탈로그 컨트롤러 또는 Store 컨트롤러를 만들 수 있습니다. 이렇게하면 많은 코드를 재사용하고 정리할 수 있습니다.

관련 문제