- 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;
}
- 微商之道
- C++黑客編程揭秘與防范
- 物聯(lián)網(wǎng)(IoT)基礎(chǔ):網(wǎng)絡(luò)技術(shù)+協(xié)議+用例
- 異構(gòu)基因共表達(dá)網(wǎng)絡(luò)的分析方法
- 重新定義Spring Cloud實(shí)戰(zhàn)
- 走進(jìn)物聯(lián)網(wǎng)
- 局域網(wǎng)組建、管理與維護(hù)項(xiàng)目教程(Windows Server 2003)
- Go Web Scraping Quick Start Guide
- Building RESTful Web Services with Spring 5(Second Edition)
- 電力物聯(lián)網(wǎng)工程技術(shù)原理與應(yīng)用
- Yii Application Development Cookbook(Second Edition)
- Building Web Applications with ArcGIS
- INSTANT KineticJS Starter
- 無(wú)線傳感器網(wǎng)絡(luò)定位技術(shù)
- 數(shù)據(jù)血緣分析原理與實(shí)踐