programing

특정 상태 코드를 반환하고 Controller에서 내용이없는 방법은 무엇입니까?

nasanasas 2020. 8. 23. 09:18
반응형

특정 상태 코드를 반환하고 Controller에서 내용이없는 방법은 무엇입니까?


아래 예제 컨트롤러가 내용없이 상태 코드 418을 반환하기를 원합니다. 상태 코드를 설정하는 것은 충분히 쉽지만 요청의 끝을 알리기 위해 수행해야 할 작업이있는 것 같습니다. ASP.NET Core 이전의 MVC 또는 호출 일 수있는 WebForms 에서는 존재하지 않는 Response.End()ASP.NET Core에서 어떻게 작동 Response.End합니까?

public class ExampleController : Controller
{
    [HttpGet][Route("/example/main")]
    public IActionResult Main()
    {
        this.HttpContext.Response.StatusCode = 418; // I'm a teapot
        // How to end the request?
        // I don't actually want to return a view but perhaps the next
        // line is required anyway?
        return View();   
    }
}

this.HttpContext.Response.StatusCode = 418; // I'm a teapot

요청을 종료하는 방법은 무엇입니까?

다른 솔루션을 시도하십시오.

return StatusCode(418);


StatusCode(???)HTTP 상태 코드를 반환하는 데 사용할 수 있습니다 .


또한 전용 결과를 사용할 수 있습니다.

성공:

  • return Ok() ← HTTP 상태 코드 200
  • return Created() ← HTTP 상태 코드 201
  • return NoContent(); ← HTTP 상태 코드 204

클라이언트 오류 :

  • return BadRequest(); ← HTTP 상태 코드 400
  • return Unauthorized(); ← HTTP 상태 코드 401
  • return NotFound(); ← HTTP 상태 코드 404


자세한 내용은:


누구든지 IHttpActionResult웹 API 프로젝트에있을 수 있습니다. 아래가 도움이 될 수 있습니다.

// GET: api/Default/
public IHttpActionResult Get()
{
    //return Ok();//200
    //return StatusCode(HttpStatusCode.Accepted);//202
    //return BadRequest();//400
    //return InternalServerError();//500
    //return Unauthorized();//401
    return Ok();
}

이 코드는 비 .NET Core MVC 컨트롤러에서 작동 할 수 있습니다.

this.HttpContext.Response.StatusCode = 418; // I'm a teapot
return Json(new { status = "mer" }, JsonRequestBehavior.AllowGet);

참고 URL : https://stackoverflow.com/questions/37690114/how-to-return-a-specific-status-code-and-no-contents-from-controller

반응형