Asp.net MVC 라우팅이 모호하고 동일한 페이지에 대한 두 경로
-
09-06-2019 - |
문제
ASP.NET MVC 라우팅을 시도하고 있는데 문제가 발생했습니다./Admin/Pages/ 섹션이 있는데 /Pages/를 통해서도 액세스할 수 있습니다.내가 무엇을 놓칠 수 있습니까?
global.asax의 라우팅 코드:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Pages", // Route name
"Admin/Pages/{action}/{id}", // URL with parameters
// Parameter defaults
new { controller = "Pages", action = "Index", id = "" }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
// Parameter defaults
new { controller = "Home", action = "Index", id = "" }
);
}
감사해요!
해결책
처음에 /Pages/에 대한 명시적인 경로를 추가하는 것이 좋습니다.
문제는 이것이 기본 경로에 의해 처리되고 파생된다는 것입니다.
컨트롤러 = "pages"action = "index"id = "" "
이는 관리 경로의 매개변수와 정확히 동일합니다.
다른 팁
이와 같은 라우팅 문제가 있는 경우 다음을 시도해 보십시오. 경로 디버거 조립(테스트에만 사용).이러한 유형의 문제를 파악하는 데 도움이 될 수 있습니다.
추신페이지 컨트롤러를 보호하려는 경우 [Authorize] 속성을 사용해야 합니다.URL 인증에만 의존하지 마세요.
{Controller} 태그가 "페이지"가 될 수 없도록 기본 규칙에 제약 조건을 추가할 수 있습니다.
기본 작업 설정과 충돌하는 첫 번째 경로 {action} 토큰/매개변수가 있습니다.경로에서 매개변수 이름을 변경하거나 기본 작업 이름을 제거해 보세요.
제휴하지 않습니다 StackOverflow