2012-07-13 4 views
0

젠드 프레임 워크처럼 모듈 기반 구조를 만들고 싶습니다. 학생과 교사 같은 2 명의 컨트롤러가 있다고 가정하고이 모든 것을 하나의 폴더에 넣어서 shchool라고 말하고 싶습니다. 같은 방법은 내가 컨트롤러의 경우 예를 들어asp.net mvc 3 프로젝트에 대한 모듈 기본 구조를 만드는 방법?

에 대한 학교 폴더의 각 컨트롤러의 뷰 파일을 원하는 :

D:\aspprojects\Project1\Project1\Controllers\School\TeacherController.cs 
D:\aspprojects\Project1\Project1\Controllers\School\StudentController.cs 

볼 파일

:

D:\aspprojects\Project1\Project1\Views\School\Teacher\all CRUD files(*.cshtml) 
D:\aspprojects\Project1\Project1\Views\School\Student\all CRUD files(*.cshtml) 

현재 구조는 아래와 같다,

컨트롤러 :

D:\aspprojects\Project1\Project1\Controllers\TeacherController.cs 
D:\aspprojects\Project1\Project1\Controllers\StudentController.cs 
보기 파일의 경우

D:\aspprojects\Project1\Project1\Views\Teacher\all CRUD files(*.cshtml) 
D:\aspprojects\Project1\Project1\Views\Student\all CRUD files(*.cshtml) 

어떻게 변경해야하나요?

+0

학교라는 영역을 사용할 수 있습니까? – Daveo

답변

2

문제는 MVC가 컨트롤러가있는 폴더를 신경 쓰지 않는다는 것입니다. 실제로 컨트롤러라는 폴더에있을 필요조차 없습니다. MVC는 이름에 Controller가있는 클래스 이름 만 찾습니다. 일단 컴파일되면 폴더 구조가 손실되고 프레임 워크가 해당 정보가 컴파일 된 코드에 더 이상 존재하지 않기 때문에 뷰의 하위 폴더를 조사 할 방법이 없습니다.

그러나 여전히 할 수는 있지만 더 이상 MVC를 사용하여 뷰 파일을 자동으로 찾을 수 없으며 각 뷰 이름을 직접 전달해야합니다.

이이 작업을 수행해야합니다 의미 : 이것보다 오히려

return View("~/Views/School/Teacher/Index.cshtml"); 

.

또 다른 옵션은 영역을 사용하여 학교 영역을 만들고 학교 영역 내에서 교사 및 학생 컨트롤러를 만들 수 있도록하는 것입니다.