라우팅은 요청을 라우팅 핸들러에 매핑하는 데 사용됩니다.
경로는 애플리케이션이 시작될 때 구성되며 요청 처리에 사용할 URL에서 값을 추출할 수 있습니다.
라우팅 기본사항
라우팅은 경로를 사용합니다(IRouter 구현)
- 경로 처리기에 들어오는 요청 매핑
- 응답에 사용되는 URL 생성
라우팅은 RouterMiddleware 클래스에 의해 미들웨어 파이프라인에 연결됩니다.ASP.NET MVC는 구성의 일부로 미들웨어 파이프라인에 라우팅을 추가합니다.
URL 일치
들어오는 요청은 각 경로의 RouteAsync 메서드를 순서대로 호출하는 RouterMiddleware에 들어갑니다.
IRouter 인스턴스는 RouteContext Handler를 null이 아닌 RequestDelegate로 설정하여 요청을 처리할지 여부를 선택합니다.
핸들러가 경로로 설정되면 요청을 처리하기 위해 호출되고 더 이상의 경로는 처리되지 않습니다.
모든 경로가 실행되고 요청에 대한 핸들러가 없으면 미들웨어가 next를 호출하고 요청 파이프라인의 다음 미들웨어가 호출됩니다.
URL 생성
URL 생성은 유사한 반복 프로세스를 따르지만 경로 컬렉션의 GetVirtualPath 메서드를 호출하는 사용자 또는 프레임워크 코드로 시작됩니다.
그러면 각 경로는 null이 아닌 VirtualPathData가 반환될 때까지 GetVirtualPath 메서드를 순서대로 호출합니다.
경로 만들기
라우팅은 IRouter의 표준 구현으로 Route 클래스를 제공합니다.Route는 RouteAsync가 호출될 때 URL 경로와 일치할 패턴을 정의하기 위해 경로 템플릿 구문을 사용합니다.
경로는 GetVirtualPath가 호출될 때 동일한 경로 템플릿을 사용하여 URL을 생성합니다.
예
routes.MapRoute(name: "default", template: "{controller=Home}/{action=Index}/{id?}");
프레임워크는 다음과 같은 경로를 생성하기 위한 확장 메서드 세트를 제공합니다. -
MapRoute MapGet MapPost MapPut MapRoute MapVerb