문제

내가 착각하지 않은 경우 - ASP.NET MVC의 규칙은 컨트롤러보기를 위해 다음을 수행하기를 원한 것 같습니다.

오늘 나는 '인덱스'보기를 배치하는 '제품'디렉토리를 만듭니다. 그런 다음 'ProductsController'를 작성하고 뷰를 반환하는 '인덱스'메소드를 만듭니다. 인수가없는 JUTE View ()를 반환하면 메소드와 동일한 이름이므로 'index.aspx'페이지를 가져 오십시오.

 public class ProductsController : Controller
    {
        public ActionResult Index()
        {
            return View();   // looks for Index.aspx in Products directory
        }
    }

이제 괜찮습니다. 그러나 나는 Billion Index.aspx 페이지로 끝날 것입니다. 저는 파일을 닫지 않는이 사람들 중 하나가되어 미쳐 버릴 것입니다.

또는 제품/products.aspx를 만들고 컨트롤러를 다음으로 변경할 수 있습니다.

 public class ProductsController : Controller
    {
        public ActionResult Index()  // my default routing goes to Index (from sample project)
        {
            return View("Products");
        }
    }

나는 그것이 어떻게 작동하는지 이해하고 MVC 디자인 패턴 내에서 완전히 괜찮다는 것을 이해합니다. 해킹이나 그런 것이 아닙니다.

내 문제 (듣고 난 후 이것 PDC 비디오)는 MVC (또는 올바른 문구가 무엇이든)에 대한 Customizabiltity에 대한 협약이 선호된다는 것입니다.

그래서 제 3 가지 방법이 없어 졌는지 또는 비주얼 스튜디오에서 50 개의 색인 탭이있는 사람들이 괜찮은지 궁금합니다.

도움이 되었습니까?

해결책

각 컨트롤러에 대한 기본 조치가 동일한 이름은 라우팅을 단순화합니다 (Global.asax Check). 또한 모든 것 (제품, 서적, 연락처 ...)은 동일한 기능에 대해 동일한 이름으로 동작/보기를 사용하면 코드를 탐색하고 이해하기가 훨씬 쉬워집니다. 이러한 컨벤션 사용은 팀의 일원으로 일할 때 개발자 간의 일관된 코드를 장려 할 때 특히 중요합니다.

다른 질문을 보면서 나는 가로 질러 달렸다 간단히 restfulrouting CodePlex의 MVCContrib 프로젝트에서. 이것은 당신에게 몇 가지 아이디어를 줄 수 있습니다.

다른 팁

나는 당신이 행동 후 방법의 이름을 지정하고보기를 지명해야한다고 생각합니다 (이해가되고 행동 사이에 공유되지 않는 경우 조치와 동일합니다). 라우팅 메커니즘을 다음과 같이 변경해야합니다 Index 실제로 설명적인 이름이 아닙니다. 조치 이름은 (다른 방법과 마찬가지로)하는 일을 나타내야하며 Index 또는 그런 것. 대신 라우팅을 편집해야합니다.

그것은 단지 패턴 일뿐입니다. 패턴을 사용하지만 작동하게하십시오. 개인적으로, 나는 그들의 기능에 따라 내 견해를 지명하고 싶고 인덱스가 많지 않기 때문에 많은 인덱스가 없습니다.

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