더북(TheBook)

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 액션 메서드가 실행된다.

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