MVC 프레임 워크-라우팅 엔진

ASP.NET MVC 라우팅을 사용하면 사용자 작업을 설명하고 사용자가 더 쉽게 이해할 수있는 URL을 사용할 수 있습니다. 동시에 라우팅을 사용하여 최종 사용자에게 표시되지 않는 데이터를 숨길 수 있습니다.

예를 들어 라우팅을 사용하지 않는 응용 프로그램에서 사용자는 URL이 http : //myapplication/Users.aspx? id = 1로 표시됩니다.이 URL은 myapplication 경로 내의 Users.aspx 파일에 해당하고 ID를 1로 전송합니다. , 일반적으로 최종 사용자에게 이러한 파일 이름을 표시하고 싶지 않습니다.

MVC URL을 처리하기 위해 ASP.NET 플랫폼은 라우팅 시스템을 사용하여 원하는 URL 패턴을 만들고 명확하고 간결한 방식으로 표현할 수 있습니다. MVC의 각 경로에는 특정 URL 패턴이 포함되어 있습니다. 이 URL 패턴은 수신 요청 URL과 비교되며 URL이이 패턴과 일치하면 라우팅 엔진에서 요청을 추가로 처리하는 데 사용됩니다.

MVC 라우팅 URL 형식

MVC 라우팅을 이해하려면 다음 URL을 고려하십시오.

http://servername/Products/Phones

위의 URL에서 Products는 첫 번째 세그먼트이고 Phone은 다음 형식으로 표현할 수있는 두 번째 세그먼트입니다.

{controller}/{action}

MVC 프레임 워크는 첫 번째 세그먼트를 컨트롤러 이름으로, 두 번째 세그먼트를 해당 컨트롤러 내부의 작업 중 하나로 자동으로 간주합니다.

Note− 컨트롤러의 이름이 ProductsController 인 경우 라우팅 URL에서 제품 만 언급합니다. MVC 프레임 워크는 Controller 접미사를 자동으로 이해합니다.

간단한 경로 만들기

경로는 App_Start 프로젝트 폴더 아래에있는 RouteConfig.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 } 
      ); 
   } 
}

이 RegisterRoutes 메서드는 응용 프로그램이 시작될 때 Global.ascx에 의해 호출됩니다. Global.ascx 아래의 Application_Start 메서드는 기본 Controller 및 해당 동작 (Controller 클래스 내부의 메서드)을 설정하는이 MapRoute 함수를 호출합니다.

예제에 따라 위의 기본 매핑을 수정하려면 다음 코드 줄을 변경하십시오.

defaults: new { controller = "Products", action = "Phones", id = UrlParameter.Optional }

이 설정은 ProductsController를 선택하고 그 안의 Phone 메서드를 호출합니다. 마찬가지로 ProductsController 내부에 Electronics와 같은 다른 메서드가있는 경우 URL은 다음과 같습니다.

http://servername/Products/Electronics