Как вернуть определенный код состояния и отсутствие содержимого из контроллера?
Я хочу, чтобы приведенный ниже пример контроллера возвращал код состояния 418 без содержимого. Установка кода состояния достаточно проста, но тогда кажется, что есть что-то, что нужно сделать, чтобы сигнализировать об окончании запроса. В MVC до ASP.NET ядро или в веб-формах, которые могут быть вызовом Response.End()
но как это работает в ASP.NET ядро где 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();
}
}
2 ответа:
this.HttpContext.Response.StatusCode = 418; // I'm a teapot
как завершить запрос?
попробуйте другое решение, просто:
return StatusCode(418);
Вы могли бы использоватьStatusCode(???)
возвращает код статуса HTTP.
Кроме того, вы можете использовать выделенные результаты:успех:
return Ok()
Http код состояния Http 200return Created()
Http Http status code 201return NoContent();
Http код состояния Http 204Ошибка Клиента:
return BadRequest();
Http код состояния Http 400return Unauthorized();
Http код состояния Http 401return NotFound();
Http код состояния Http 404
Подробнее:
- Класс ControllerBase (Спасибо @Technetium)
- статусные коды.cs (запоры доступны в ASP.NET Core)
- коды состояния HTTP на Wiki
- коды состояния HTTP IANA