Note ASP.NET 4.6 MVC 5에서의 라우팅


    ASP.NET Core 1.0 MVC와 달리 ASP.NET 4.6 MVC 5 프로젝트는 Global.asax 파일에 다음 코드와 같이 라우트 설정을 등록하는 코드가 있고, RouteConfig 파일은 따로 ~/App_Start/RouteConfig.cs 파일에 코드가 존재한다.

    ▼  MVC 5 프로젝트의 Global.asax 파일

    protected void Application_Start()
    {
      AreaRegistration.RegisterAllAreas();   
      FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
      RouteConfig.RegisterRoutes(RouteTable.Routes);
      BundleConfig.RegisterBundles(BundleTable.Bundles);
    }
    

     

    다음은 MVC 5 RouteConfig.cs 파일의 코드다. MapRoute() 메서드에 기본값으로 /<컨트롤러이름>/<액션이름>/<매개 변수값> 형태로 구성되어 있고, 기본값으로 입력이 들어오지 않을 때는 /Home/Index 경로가 호출되도록 설정된 내용이다.

    ▼  /App_Start/Route.Config.cs 파일

    public class RouteConfig
    {
      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 }
          );
      }
    }
    

     

    이와 같은 코드에 의해서 /Home/Index/ 형식으로 호출될 때 HomeController에 있는 Index 액션 메서드가 실행된다.

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.