문제

내 데이터베이스에는 조회 유형을 나타내는 12 개의 테이블이있을 수 있습니다 (모두 ID 및 이름 열이 있습니다. 아니요, 별도의 테이블로 유지해야합니다. 하나의 테이블로 정규화되지 않음). 관리자 가이 모든 조회를 추가/편집/삭제/목록에 올릴 수 있기를 원하는 관리 응용 프로그램을 구축하고 있습니다. 모델을 재사용 할 수 있다는 것을 알고 있지만 ASP MVC 2 응용 프로그램 에이 글을 작성하는 방법이 더 효율적입니다. 3 개의 뷰를 작성하는 것 외에는 각 조회 유형에 대해 1 개의 컨트롤러 1 개를 작성하여 48 개의 뷰와 12 개의 컨트롤러가 발생합니까?

도움이 되었습니까?

해결책

모델, 컨트롤러 및 뷰 사이의 커플 링을 제거하는 것이 좋습니다. 이 패턴의 아이디어는 비즈니스 로직을 워크 플로에서 프레젠테이션과 분리한다는 것입니다. 여러 모델을 동일한 뷰/컨트롤러에 혼합하기 시작하면 지저분 해집니다.

마스터 페이지를 사용하고 모델이 공통 기본 클래스 나 그와 비슷한 것을 상속 받으려고 시도하는 일을 시도해 볼 수 있습니까? 이렇게하면 코드를 동일한 파일에 분쇄하지 않고 재사용 할 수 있습니다.

다른 팁

이들 모두를 단일 엔티티와 결합하는 고급 ORM 매핑은 어떻습니까?

나는 이것을 할 것이다 각 CRUD 작업에 대한 하나의 컨트롤러 및 작업/보기 (1x4). 스키마가 하나 이상의 조회 테이블에서 변경되면 처리 할 것입니다. 그렇지 않으면 각 테이블에 열을 추가하면 수정 된 작업을 생각해보십시오. 48x12 또는 모든 파일을 업데이트해야합니다.

방법에 대한 세부 사항은 모델에 따라 다르지만 Ado.net을 사용하여 단순히 테이블 이름이 뷰에 의해 제공되는 동적 SQL 문으로 채워진 데이터 가능 또는 이와 유사한 것으로 반환 할 수 있습니다. 문자열 연결을 사용하는 경우 SQL 주입을 방지해야합니다.

Create View는 게시 된 양식에서 오는 테이블 이름을 유사하게 사용하여 게시 된 데이터로 업데이트 할 테이블을 알 수 있습니다.

T4 템플릿을 사용하여 (괜찮은 예) 모든 것을 쌓으려면. 각 모델을 기반으로 컨트롤러 및보기를 코딩 할 수 있어야합니다.

죄송합니다. 제 대답은 48 개의 조회수 및 12 개의 컨트롤러와 함께 이동하는 것입니다 ... 코드 유형을 추가하면 코드를 추가하면 코드를 다시 실행하고 붐, 컨트롤러 및 뷰를 다시 실행하기 만하면됩니다. 설정됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top