1. ホーム
  2. c#

[解決済み] コントローラから特定のステータスコードと内容を返すには?

2022-04-24 04:05:48

質問

下記のコントローラの例で、ステータスコード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



詳細はこちら