ASP.NET Core MVC에서 요청을 리디렉션하는 방법

ASP.NET Core는 고성능 웹 애플리케이션을 빌드하기위한 크로스 플랫폼, 오픈 소스, 간결하고 빠른 모듈 식 프레임 워크입니다. ASP.NET Core MVC 애플리케이션을 사용하면 여러 가지 방법으로 요청을 지정된 URL로 리디렉션 할 수 있습니다. 이 기사에서는 적절한 곳에서 코드 예제를 사용하여이를 수행하는 방법에 대해 설명합니다.

이 문서에 제공된 코드 예제를 사용하려면 시스템에 Visual Studio 2019가 설치되어 있어야합니다. 아직 복사본이없는 경우 여기에서 Visual Studio 2019를 다운로드 할 수 있습니다. 

[또한 : C #에서 신 개체를 리팩터링하는 방법]

Visual Studio에서 ASP.NET Core MVC 프로젝트 만들기

먼저 Visual Studio 2019에서 ASP.NET Core 프로젝트를 만들어 보겠습니다. Visual Studio 2019가 시스템에 설치되어 있다고 가정하고 아래 설명 된 단계에 따라 Visual Studio에서 새 ASP.NET Core 프로젝트를 만듭니다.

  1. Visual Studio IDE를 시작합니다.
  2. "새 프로젝트 만들기"를 클릭합니다.
  3. "새 프로젝트 만들기"창의 표시된 템플릿 목록에서 "ASP.NET Core 웹 애플리케이션"을 선택합니다.
  4. 다음을 클릭하십시오.
  5. “Configure your new project”창에서 새 프로젝트의 이름과 위치를 지정합니다.
  6. 선택적으로 기본 설정에 따라 "동일한 디렉토리에 솔루션 및 프로젝트 배치"확인란을 선택합니다.
  7. 생성을 클릭합니다.
  8. 다음에 표시된 "새 ASP.NET Core 웹 애플리케이션 만들기"창에서 런타임으로 .NET Core를 선택하고 상단의 드롭 다운 목록에서 ASP.NET Core 3.1 이상을 선택합니다.
  9. 새 ASP.NET Core MVC 애플리케이션을 만들려면 프로젝트 템플릿으로 "웹 애플리케이션 (모델-뷰-컨트롤러)"을 선택합니다. 
  10. 여기서는 이러한 기능을 사용하지 않으므로 "Docker 지원 활성화"및 "HTTPS 용 구성"확인란이 선택 취소되어 있는지 확인합니다.
  11. 인증을 사용하지 않을 것이므로 인증이 "인증 없음"으로 설정되어 있는지 확인하십시오.
  12. 생성을 클릭합니다.

다음 단계에 따라 Visual Studio 2019에서 새 ASP.NET Core MVC 프로젝트를 만듭니다. 아래 섹션에서이 프로젝트를 사용하여 ASP.NET Core 3.1에서 작업 메서드로 작업 할 때 요청을 리디렉션 할 수있는 방법을 설명합니다.

ASP.NET Core MVC의 리디렉션 작업 결과

ASP.NET Core MVC에는 RedirectResult, RedirectToActionResult, RedirectToRouteResult 및 LocalRedirectResult와 같은 여러 유형의 작업 결과가 있습니다. 이러한 모든 클래스는 ActionResult 클래스와 IActionResult 및 IKeepTempDataResult 인터페이스를 확장하고 Found (Http 상태 코드 302), Moved Permanently (Http 상태 코드 301), Temporary Redirect (Http 상태 코드 307) 또는 Permanent Redirect (Http 상태 코드 308)를 반환합니다. ).

이 섹션에서는 이들 각각에 대해 어떻게 작업 할 수 있는지 살펴볼 것입니다.

ASP.NET Core MVC에서 RedirectResult 사용

다음 메서드 중 하나를 사용하여 RedirectResult를 반환 할 수 있습니다.

  • 리디렉션 – Http 상태 코드 302 발견 (일시적으로 위치 헤더에 제공된 URL로 이동 됨)
  • RedirectPermanent – ​​HTTP 상태 코드 301이 영구적으로 이동 됨
  • RedirectPermanentPreserveMethod – HTTP 상태 코드 308 영구 리디렉션
  • RedirectPreserveMethod – HTTP 상태 코드 307 임시 리디렉션

다음 코드 줄은 이러한 각 메서드를 사용하는 방법을 보여줍니다.

Redirect ( "/ 저자 / 색인");
RedirectPermanent ( "/ 저자 / 색인");
RedirectPermanentPreserveMethod ( "/ Author / Index");
RedirectPreserveMethod ( "/ Author / Index");

또는 아래 제공된 코드 스 니펫에 표시된대로 RedirectResult 인스턴스를 반환 할 수 있습니다.

public RedirectResult Index ()

{

   return new RedirectResult (url : "/ Author / Index", 영구 : true,

                             preserveMethod : true);

}

Redirect 메서드를 사용하여 요청을 지정된 URL로 리디렉션 할 수 있습니다. 이 메서드는 ControllerBase라는 추상 기본 클래스에서 사용할 수 있습니다.

public RedirectResult Index ()

{

  return Redirect ( "// google.com");

}

ASP.NET Core MVC에서 만든 컨트롤러는 Controller 클래스를 확장합니다. 이 클래스는 차례로 ControllerBase 클래스를 확장하고 IActionFilter, IFilterMetadata, IAsyncActionFilter 및 IDisposable 인터페이스를 구현합니다.

ASP.NET Core MVC에서 RedirectToActionResult 사용

이 작업 결과는 지정된 작업 및 컨트롤러로 리디렉션하는 데 사용할 수 있습니다. 컨트롤러가 지정되지 않으면 현재 컨트롤러 내에서 지정된 작업으로 리디렉션됩니다. 다음 메서드 중 하나를 사용하여 지정된 작업으로 리디렉션하고 작업 메서드에서 RedirectToActionResult 인스턴스를 반환 할 수 있습니다.

  • RedirectToAction – Http 상태 코드 302 발견 (일시적으로 위치 헤더에 제공된 URL로 이동 됨)
  • RedirectToActionPermanent – ​​HTTP 상태 코드 301이 영구적으로 이동 됨
  • RedirectToActionPermanentPreserveMethod – HTTP 상태 코드 308 영구 리디렉션
  • RedirectToActionPreserveMethod – HTTP 상태 코드 307 임시 리디렉션

다음 코드 조각은 RedirectToAction 메서드를 사용할 수있는 방법을 보여줍니다.

public RedirectToActionResult Index ()

{

    return RedirectToAction (actionName : "Index", controllerName : "Author");

}

요청을 현재 컨트롤러의 작업 메서드로 리디렉션하려는 경우 컨트롤러 이름을 건너 뛸 수 있습니다. 다음 코드 스 니펫은이를 달성하는 방법을 보여줍니다.

public RedirectToActionResult Index ()

{

   return RedirectToAction (actionName : "개인 정보");

}

ASP.NET Core MVC에서 RedirectToRouteResult 사용

이것은 요청을 지정된 경로로 리디렉션하는 데 사용할 수있는 또 다른 작업 결과입니다. 다음 메서드 중 하나를 사용하여 작업 메서드에서 RedirectToRouteResult 인스턴스를 반환 할 수 있습니다.

  • RedirectToRoute – Http 상태 코드 302 발견 (일시적으로 위치 헤더에 제공된 URL로 이동 됨)
  • RedirectToRoutePermanent – ​​HTTP 상태 코드 301이 영구적으로 이동 됨
  • RedirectToRoutePermanentPreserveMethod – HTTP 상태 코드 308 영구 리디렉션
  • RedirectToRoutePreserveMethod – HTTP 상태 코드 307 임시 리디렉션

다음 코드 조각은 RedirectToRoute 메서드를 사용하는 방법을 보여줍니다.

public RedirectToRouteResult Index ()

{

    return RedirectToRoute ( "author");

}

아래 제공된 코드 스 니펫에 표시된대로 리디렉션 할 때 경로 값을 지정할 수도 있습니다.

var routeValue = 새 RouteValueDictionary

 (new {action = "View", controller = "Author"});

return RedirectToRoute (routeValue);

ASP.NET Core MVC에서 LocalRedirectResult 사용

이 작업 결과는 로컬 URL로 리디렉션하려는 경우 사용됩니다. 외부 URL을 함께 사용하면 InvalidOperationException이 발생합니다. 다음 메서드 중 하나를 사용하여 작업 메서드에서 LocalRedirectResult 인스턴스를 반환 할 수 있습니다.

  • LocalRedirect – Http 상태 코드 302 발견 (일시적으로 위치 헤더에 제공된 URL로 이동 됨)
  • LocalRedirectPermanent – ​​Http 상태 코드 301이 영구적으로 이동 됨
  • LocalRedirectPermanentPreserveMethod – HTTP 상태 코드 308 영구 리디렉션
  • LocalRedirectPreserveMethod – HTTP 상태 코드 307 임시 리디렉션

ASP.NET Core MVC의 Razor 페이지로 리디렉션

마지막으로 RedirectToPage 메서드를 사용하여 요청을 리디렉션 할 대상 razor 페이지를 지정하여 razor 페이지로 리디렉션 할 수도 있습니다. RedirectToPage 메서드는 HTTP 상태 코드 302와 함께 RedirectToPageResult 인스턴스를 반환합니다.

요청을 리디렉션 할 Author라는 페이지가있는 경우 다음 코드 스 니펫을 사용할 수 있습니다.

공용 IActionResult RedirectToAuthorPage ()

{

    return RedirectToPage ( "Author");

}

ASP.NET Core에서 더 많은 작업을 수행하는 방법 :

  • ASP.NET Core에서 특성 라우팅을 사용하는 방법
  • ASP.NET Core MVC의 작업 메서드에 매개 변수를 전달하는 방법
  • ASP.NET Core에서 API Analyzer를 사용하는 방법
  • ASP.NET Core에서 경로 데이터 토큰을 사용하는 방법
  • ASP.NET Core에서 API 버전 관리를 사용하는 방법
  • ASP.NET Core 3.1에서 데이터 전송 개체를 사용하는 방법
  • ASP.NET Core MVC에서 404 오류를 처리하는 방법
  • ASP.NET Core 3.1의 작업 필터에서 종속성 주입을 사용하는 방법
  • ASP.NET Core에서 옵션 패턴을 사용하는 방법
  • ASP.NET Core 3.0 MVC에서 엔드 포인트 라우팅을 사용하는 방법
  • ASP.NET Core 3.0에서 Excel로 데이터를 내보내는 방법
  • ASP.NET Core 3.0에서 LoggerMessage를 사용하는 방법
  • ASP.NET Core에서 이메일을 보내는 방법
  • ASP.NET Core에서 SQL Server에 데이터를 기록하는 방법
  • ASP.NET Core에서 Quartz.NET을 사용하여 작업을 예약하는 방법
  • ASP.NET Core Web API에서 데이터를 반환하는 방법
  • ASP.NET Core에서 응답 데이터의 형식을 지정하는 방법
  • RestSharp를 사용하여 ASP.NET Core Web API를 사용하는 방법
  • Dapper를 사용하여 비동기 작업을 수행하는 방법
  • ASP.NET Core에서 기능 플래그를 사용하는 방법
  • ASP.NET Core에서 FromServices 특성을 사용하는 방법
  • ASP.NET Core에서 쿠키를 사용하는 방법
  • ASP.NET Core에서 정적 파일을 사용하는 방법
  • ASP.NET Core에서 URL 재 작성 미들웨어를 사용하는 방법
  • ASP.NET Core에서 속도 제한을 구현하는 방법
  • ASP.NET Core에서 Azure Application Insights를 사용하는 방법
  • ASP.NET Core에서 고급 NLog 기능 사용
  • ASP.NET Web API에서 오류를 처리하는 방법
  • ASP.NET Core MVC에서 전역 예외 처리를 구현하는 방법
  • ASP.NET Core MVC에서 null 값을 처리하는 방법
  • ASP.NET Core Web API의 고급 버전 관리
  • ASP.NET Core에서 작업자 서비스로 작업하는 방법
  • ASP.NET Core에서 데이터 보호 API를 사용하는 방법
  • ASP.NET Core에서 조건부 미들웨어를 사용하는 방법
  • ASP.NET Core에서 세션 상태로 작업하는 방법
  • ASP.NET Core에서 효율적인 컨트롤러를 작성하는 방법