- Hands-On Full:Stack Web Development with ASP.NET Core
- Tamir Dresher Amir Zuker Shay Friedman
- 320字
- 2021-06-10 19:37:32
IActionResult and ActionResult<T>
The IActionResult interface defines the contract <indexentry content="HTTP response:ActionResult"> for action method responses. The default implementation of the interface is provided by the ActionResult and ActionResult<T> types, but ASP.NET Core provides many derived response types that you can use to fully control the HTTP response that will be generated. Here is a short list of some of them:
- EmptyResult: Generates an HTTP response with a success status code (200 OK) and an empty body.
- ObjectResult: Generates a response with a body, where the body is a serialization of an object you provide. The object is serialized to the content type that was requested by the client.
- BadRequestResult: Generates a response with a BadRequst status code (400) that signals to the client that the given request is invalid.
- ViewResult: Allows you to render a view, from a cshtml file, for example, and return the result (as HTML) to the client.
- FileResult: Generates a response that contains file data. There are derived classes for various file reading formats.
- RedirectResult: Generates a response with a temporary redirect (302) or permanent redirect status code (301) that contains the URL to navigate to.
Starting from ASP.NET Core 2.1, the ActionResult<T> type can be used as the return type of a controller action to make it explicit what the type of the body will be in a successful response, while still allowing for the return of other response types if needed.
For example, if GiveNTake receives a request to add a product with invalid request data, we send the client a BadRequestResult, and if the request was valid, we echo the request data with an ObjectResult, like this:
[HttpPost("")]
public ActionResult<NewProductDTO> AddNewProduct([FromBody] NewProductDTO newProduct)
{
if (!ModelState.IsValid)
{
return new BadRequestResult();//(ModelState);
}
return newProduct;
}
- 通信網絡基礎與設備
- Hands-On Chatbot Development with Alexa Skills and Amazon Lex
- 信息通信網絡建設安全管理概要2
- Go Web Scraping Quick Start Guide
- Building RESTful Web Services with Spring 5(Second Edition)
- 通信簡史:從信鴿到6G+
- 電力物聯網工程技術原理與應用
- 通信十年:擁抱互聯網
- jQuery Mobile Web Development Essentials
- 華為HCIA-Datacom認證指南
- 智慧城市中的物聯網技術
- 算力網絡:云網融合2.0時代的網絡架構與關鍵技術
- ReasonML Quick Start Guide
- SD-WAN 架構與技術
- Next.js Quick Start Guide