Как вернуть определенный код состояния и никакого содержимого из контроллера?

Я хочу, чтобы приведенный ниже пример контроллера возвращал код состояния 418 без содержимого. Установка кода состояния достаточно проста, но затем кажется, что нужно что-то сделать, чтобы сигнализировать об окончании запроса. В MVC до ASP.NET Core или в 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();   
    }
}
76 голосов | спросил Ron C 8 J0000006Europe/Moscow 2016, 00:58:27

2 ответа


0
  

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


Подробнее:

ответил Lukasz Makowej 8 J0000006Europe/Moscow 2016, 02:07:04
0

Этот код может работать для контроллеров, отличных от .NET Core MVC:

this.HttpContext.Response.StatusCode = 418; // I'm a teapot
return Json(new { status = "mer" }, JsonRequestBehavior.AllowGet);
ответил sobelito 7 ThuEurope/Moscow2017-12-07T15:45:23+03:00Europe/Moscow12bEurope/MoscowThu, 07 Dec 2017 15:45:23 +0300 2017, 15:45:23

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132