Jak zwrócić określony kod statusu i brak zawartości z kontrolera?

Chcę, aby poniższy przykładowy kontroler zwrócił kod stanu 418 bez zawartości. Ustawienie kodu stanu jest dość łatwe, ale wydaje się, że jest coś, co należy zrobić, aby zasygnalizować koniec żądania. W MVC przed ASP.NET Core lub w WebForms, które może być wywołaniem Response.End(), ale jak to działa w ASP.NET gdzie Response.End nie istnieje?

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();   
    }
}
Author: Massimiliano Kraus, 2016-06-08

2 answers

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

Jak zakończyć żądanie?

Spróbuj innego rozwiązania, po prostu:

return StatusCode(418);


Możesz użyć StatusCode(???), aby zwrócić dowolny kod statusu HTTP.


Możesz również użyć dedykowanych wyników:

sukces:

  • return Ok() ← kod statusu Http 200
  • return Created() ← kod statusu Http 201
  • return NoContent(); ← kod statusu Http 204

Błąd Klienta:

  • return BadRequest(); ← Status Http kod 400
  • return Unauthorized(); ← kod statusu Http 401
  • return NotFound(); ← kod statusu Http 404


Więcej Szczegółów:

 165
Author: Lukasz Makowej,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-02 19:17:27

Ten kod może działać dla non-.NET podstawowe Kontrolery MVC:

this.HttpContext.Response.StatusCode = 418; // I'm a teapot
return Json(new { status = "mer" }, JsonRequestBehavior.AllowGet);
 0
Author: sobelito,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-11 08:21:07