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