이미 설명한 바와 같이 ASP.NET MVC는 컨벤션 오버 규칙을 사용합니다. 아웃 박스, 폴더 구조는 다음과 같이 (만 부를 도시 등 메모리에서 그 일을 ...)
사이트 루트
+ Controllers
HomeController.cs
AccountController.cs
+ Views
+ Home
Index.aspx
+ Account
Index.aspx
+ Shared
기본 라우팅 핸들러는 다음과 유사한입니다 :
"{controller}/{action}/{id}"
는 경로에 대한 기본 값이 있습니다,하지만 당신은 A/B/C하는 URL이있는 경우, 그것은 컨트롤러 aController에 대한 조치 A의 모양과 방법에 말했다 경우 매개 변수로 c를 전달할 컨트롤러는 매개 변수를 받아들입니다.
그런 다음 몇 가지 사항을 명확히해야합니다. 다시 컨벤션 오버 컨셉 : 1) 기본 엔진을 사용하는 경우 모든 컨트롤러 클래스는 컨트롤러로 끝나야합니다. 그런 식으로 요청이 들어오고 {controller} 값이 파싱되면 엔진은 Controller를 Controller에 추가하고 Controller 폴더 (따라서 네임 스페이스)를 찾아서 클래스를 찾습니다. 2) 기본적으로 변경 될 수 있습니다. 컨트롤러의 모든보기는 Views/{controller} 폴더 또는 Views/Shared 폴더에 있어야합니다. 3) 컨트롤러의 공용 메서드는 기본적으로 동작입니다. 이 속성을 숨겨서 엔진에서 사용할 수 없게 만들 수 있지만 기본적으로 공개됩니다.
요청이 들어 오면 경로가 알려진 모든 경로 (global.asax)와 비교되고 요청과 일치하는 첫 번째 경로가 허용됩니다.경로는 구성 요소 파트로 파싱되어 컨트롤러, 동작 및 매개 변수를 결정합니다.
컨트롤러가 식별되면 엔진은 해당 컨트롤러의 인스턴스를 인스턴스화하고 발견 된 일치하는 메서드 (동작)를 실행합니다.
작업은 ActionResult를 반환합니다. 뷰는 실제로 ViewResult를 반환하는 extensino 메서드입니다 (올바르게 기억하는 경우). 조치의 기본보기는 Views/{ControllerName} 폴더에있는 조치와 동일한 이름의보기입니다.
라우팅은 그 자체로 짐승이며, 만약 당신이 그걸 가지고 놀려고한다면, 나는 그것에 대해 좋은 읽을 거리를 추천 할 것입니다. 이해하는 시간이지만 일생을 지배하는 일.
필자에게 BTW에는 컨트롤러 작업을위한보기로 PHP 페이지를 사용할 엔진이 없습니다.