RealPath:
WebPath:
2017/09/14 23:06 (JST) 更新
エラー処理等 >>

任意のHTTPステータス応答

Contents

HTTPステータスコードのみを返すアクション

数値で指定

Controller.StatusCode() により任意のHTTPステータスコードのみの応答を返すことができる。

/Controllers/HelloController.cs
using Microsoft.AspNetCore.Mvc;

public class HelloController : Controller
{
    public IActionResult Sample401()
    {
        return StatusCode(401); // 401 Unauthorized 応答
    }
    public IActionResult Sample404()
    {
        return StatusCode(404); // 404 Not Found 応答
    }
}

メソッドで指定

よく使われるステータスコードについては NotFound() 等のように意味が伝わりやすいメソッドが用意されている。

/Controllers/HelloController.cs
using Microsoft.AspNetCore.Mvc;

public class HelloController : Controller
{
    public IActionResult Sample401()
    {
        return Unauthorized(); // 401 Unauthorized 応答
    }
    public IActionResult Sample404()
    {
        return NotFound(); // 404 Not Found 応答
    }
}

ビュー内容を変えずにHTTPステータスコードを変更する

あまり使うことはないが、通常のビュー表示を保ったままステータスコードを変更することもできる。

/Controllers/HelloController.cs
using Microsoft.AspNetCore.Mvc;

public class HelloController : Controller
{
    public IActionResult World()
    {
        // ビュー内容は保ったまま HTTP ステータスコードを 404 とする
        this.Response.StatusCode = 404;
        return View();
    }
}