Asp.net MVC 라우팅이 모호하고 동일한 페이지에 대한 두 경로

StackOverflow https://stackoverflow.com/questions/70371

  •  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} 토큰/매개변수가 있습니다.경로에서 매개변수 이름을 변경하거나 기본 작업 이름을 제거해 보세요.

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