2014-03-12 6 views
0

MVC 프로젝트에서 링크를 연결하려고합니다. 제거 될 수 있었다ASP.NET MVC의 경로

HTTP (404) 당신이 찾고있는 자원 (또는 해당 종속성 중 하나) : 나는 오류가 두 가지 방법에 대한

public static void RegisterRoutes(RouteCollection routes) 
    { 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 

     //method1 
     // routes.MapPageRoute("SchoolPage", "School", "~/home", false); 

     //method2 
     routes.MapRoute(name: "SchoolPage",url: "School", defaults: new { controller = "Home", action = "Index" }); 
    } 

:

나는 두 가지 방법을 시도 이름이 변경되었거나 일시적으로 사용할 수 없습니다. 다음 URL을 검토하고 철자가 올바른지 확인하십시오.

+3

먼저 'SchoolPage' 경로를 지정하십시오. –

답변

1

사용자 지정 경로를 먼저 지정해야합니다. 기본 경로에는 제약 조건이 없어 모든 URL과 일치합니다. http://example.org/School을 요청하면 ASP.NET MVC는 기본 경로를 사용하여 SchoolController라는 컨트롤러를 찾습니다. 먼저 기본 경로 앞에 배치하여 SchoolPage 경로와 일치하는지 확인해야합니다.

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapRoute(name: "SchoolPage",url: "School", defaults: new { controller =  "Home", action = "Index" }); 

    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 

} 
+0

고마워요! 그것은 매력처럼 작동합니다! – POIR