IActionResult
是 ASP.NET Core 控制器中用于返回 HTTP 响应结果的一个接口。它提供了多种类型的响应结果,可以用来处理各种不同的场景。以下是 IActionResult
可以返回的一些常见类型及其含义:
1. OkResult
- 用途:返回一个 HTTP 200 OK 状态码。
- 示例:
return Ok();
2. JsonResult
- 用途:返回 JSON 格式的响应内容。
- 示例:
var data = new { Message = "Hello, World!" }; return Json(data);
3. ContentResult
- 用途:返回任意格式的文本内容。
- 示例:
return Content("Hello, World!");
4. FileResult
-
用途:返回文件内容。
-
子类:
- FileContentResult:返回文件二进制内容。
- FileStreamResult:返回文件流。
- PhysicalFileResult:返回物理路径上的文件。
-
示例:
byte[] fileBytes = System.IO.File.ReadAllBytes("path/to/file.txt"); return File(fileBytes, "text/plain", "file.txt");
5. RedirectResult
- 用途:返回一个重定向响应。
- 示例:
return Redirect("/Home/Index");
6. RedirectToActionResult
- 用途:重定向到另一个动作。
- 示例:
return RedirectToAction("Index", "Home");
7. RedirectToRouteResult
- 用途:根据路由值重定向。
- 示例:
return RedirectToRoute(new { controller = "Home", action = "Index" });
8. ViewResult
- 用途:返回一个视图。
- 示例:
return View(model);
9. NotFoundResult
- 用途:返回一个 HTTP 404 Not Found 状态码。
- 示例:
return NotFound();
10. BadRequestResult
-
用途:返回一个 HTTP 400 Bad Request 状态码。
-
示例:
return BadRequest("Invalid request.");
11. NoContentResult
- 用途:返回一个 HTTP 204 No Content 状态码。
- 示例:
return NoContent();
12. CreatedResult
- 用途:返回一个 HTTP 201 Created 状态码。
- 示例:
return CreatedAtAction("Details", new { id = item.Id }, item);
13. AcceptedAtActionResult
- 用途:返回一个 HTTP 202 Accepted 状态码,并重定向到另一个动作。
- 示例:
return AcceptedAtAction("Index", new { id = item.Id }, item);
14. AcceptedAtRouteResult
- 用途:返回一个 HTTP 202 Accepted 状态码,并根据路由值重定向。
- 示例:
return AcceptedAtRoute("GetItem", new { id = item.Id }, item);
15. StatusCodeResult
- 用途:返回自定义的 HTTP 状态码。
- 示例:
return StatusCode(403, "Access Denied.");
总结
IActionResult
可以返回多种结果类型,每种类型都有其特定的用途。使用 IActionResult
可以让你的控制器动作更加灵活,能够应对不同的场景需求。无论你是需要返回 JSON 数据、文本内容、文件、视图还是重定向到其他页面,IActionResult
都能够提供适当的支持。