Action 반환 시리즈는 기초단원에서 1 - 웹페이지를 반환하는 가장 기초적인 View(), 2 - 다른페이지로 넘기는 RedirectToAction()과 Redirect()를 다뤘었습니다. 중급에서는 웹페이지와 REST API에서 공통적으로 사용할 수 있는 IActionResult 일체와 REST API에 특화된 ActionResult를 다루겠습니다.
사실 1,2에서 다뤘던 View나 Redirect류도 IActionResult 리턴이 가능합니다만, 3을 분리한 이유는 HTTP Status code에 대한 이해가 더 자세히 필요하다고 판단해서 나눴습니다. 참고로 이전글 예제에 보면 메소드의 반환 타입이 Task< IActionResult> 또는 IActionResult 입니다. Task는 비동기 반환 값으로 개념자체는 이글의 범위를 벗어나기 때문에 크게 다루지 않습니다.

1. IActionResult와 ActionResult 의 차이
ActionResult에는 제네릭으로 ActionResult<T> 타입을 지원합니다. 따라서 T에 기입한 타입으로 반환할 수 있습니다.


2. IActionResult와 ActionResult 공통점
Http Status Code 함수로의 반환이 가능합니다. 종류가 워낙많기 때문에 대표적인 것 몇가지만 본문에서 작성하겠습니다.
BadRequest(), NotFound(), Ok(), Created(), Unauthorized()
이 함수들은 모델을 포함하여 반환할 수도 있습니다.

위 스크린샷 예제 하단에서 보듯이 StatusCode를 Enum Type으로 넘겨줄 수도 있습니다. StatusCode($"Status{http status code}{http status description}" , 모델) 형태로 반환이 가능합니다.
반환가능한 Result의 종류도 더 있습니다. 아래에는 함수가 아닌 클래스 이기 때문에 return new xxxx() 형태로 반환해주어야 하는 것들 중 일부를 가져왔습니다.
ContentResult - 반환할 문자열, 반환 타입, status code를 기입할 수 있습니다.

JsonResult - ContentType이 자동으로 application/json이라고 보시면 되겠습니다. 문자열 또는 문자열과 시리얼라이즈시의 옵션으로 사용할 수 있습니다.status code또한 변경할 수 있습니다. 위 ContentResult예제와 아래의 JsonResult예제가 서로 동일한 결과를 반환한다고 보시면 되겠습니다.

이상 IActionResult와 ActionResult에 대해 알아보았습니다. 타입과 status code가 다양하게 반환될 수록 설계에 고민이 많으실텐데 가장 간단한 방법부터 사용해보시는 것을 권장드립니다.
'Backend > ASP.NET Core' 카테고리의 다른 글
| ASP.NET core MVC 기초 (7) - Action 반환2 - RedirectToAction, Redirect (0) | 2025.11.05 |
|---|---|
| ASP.NET core MVC 기초 (6) - Action VIEW()반환과 모델 전달 (1) | 2025.08.27 |
| ASP.NET core MVC 기초 (5) - Attribute Routing 2편 HTTP Method (0) | 2025.08.25 |
| ASP.NET core MVC 기초 (4) - Attribute Routing 1편 (0) | 2025.08.20 |
| ASP.NET core MVC 기초 (3) - Convention-based Routing (1) | 2025.08.18 |





































