보고서 컨트롤러 (ReportsController)가 너무 많아서 분할하기로 결정했습니다. 2 개의 URL 수준을 통해 컨트롤러 분할 및 컨트롤러 라우팅
내가 ReportsController를 사용하기로 결정응용 프로그램/보고서/설정/
응용 프로그램/보고서/차트/
응용 프로그램/보고서/테이블/: 저는 현재 세 개의 컨트롤러가 제공 페이지가 그냥 설정 페이지에 대한, 그리고 나는 다른 페이지를 처리하는 두 개의 별도의 컨트롤러를 만들었습니다 - Reports__ChartsController & Reports__TablesController.
나는 내 라우팅 설정에 다음과 같은 두 가지 경로 추가 :routes.Add(
new Route("reports/charts/{action}/{id}",
new RouteValueDictionary(
new { controller = "Reports__Charts", action = "Index", id = UrlParameter.Optional }),
new HyphenatedRouteHandler()
)
);
routes.Add(
new Route("reports/tables/{action}/{id}",
new RouteValueDictionary(
new { controller = "Reports__Tables", action = "Index", id = UrlParameter.Optional }),
new HyphenatedRouteHandler()
)
);
접근 방식은 정말 잘 작동을하지만, 더 나은 방법이 있는지 궁금 해서요? 이 접근법의 단점은 다른 컨트롤러를 분리하고 싶다면 각 컨트롤러에 고유 한 내 경로 구성에 항목을 계속 추가해야하므로 유지 관리가 어려운 지점으로 내 라우트 구성을 확장 할 수 있다는 것입니다.
내가 뭘하고 싶었는지 (컨트롤러를 나누는) 공통 요구 사항이지만 Google을 통해 구현하는 표준 방법을 찾지 못했습니다.
우수 감사합니다. 컨벤션 기반 라우팅은 앱의 90 % (기본 라우팅)에 대한 나의 필요에 맞습니다. 그래서 나는 그것을 고수 할 수 있고 동시에 쉬운 라우팅에 맞지 않는 페이지에 대한 속성 기반 라우팅을 사용할 수있어서 기쁩니다 협약 – Rob