4 c# asp.net-core-mvc asp.net-core
什么是IActionResult?我尝试查看MSDN和其他站点,但需要通用,通用的易于理解的答案。
例:
public IActionResult About() {
ViewData["Message"] = "About Page";
return View();
}
Run Code Online (Sandbox Code Playgroud)
IActionResult 指定服务器应如何响应请求,例如将数据写入响应或返回错误状态代码。
例如,Microsoft.AspNetCore.Mvc.JsonResult序列化从构造函数传递的对象并将序列化的 JSON 数据写入响应并将 MIME 类型设置为application/JSON。可以理解为“此请求结果为一个JSON字符串”。
一般而言,IActionResult类型是动作结果的基本抽象。它用作表示特定响应类型的其他派生操作结果的基础,其中有很多响应类型。
IActionResult和ActionResult
IActionResult和ActionResult充当其他操作结果的容器,因为IActionResult是接口,而ActionResult是其他操作结果继承的抽象类。因此,无法像其他操作结果一样对它们进行更新和返回。从可用性的角度来看,IActionResult和ActionResult没有太大区别,但是由于IActionResult是预期的操作结果约定,因此最好使用它而不是ActionResult。IActionResult / ActionResult应该用于为我们提供更大的灵活性,例如当我们需要基于用户交互返回不同类型的响应时。
引用官方文档,请单击此处ASP.NET Core Web API中的控制器操作返回类型
如果一个动作中可能有多个ActionResult返回类型,则IActionResult返回类型是适当的。ActionResult类型表示各种HTTP状态代码。属于此类别的一些常见返回类型是BadRequestResult(400),NotFoundResult(404)和OkObjectResult(200)。