MVC Core IActionResult含义

时间:2018-03-27 03:13:49

标签: c# asp.net-core asp.net-core-mvc

什么是IActionResult?我试过看MSDN和其他网站,但需要一般的,常见的易于理解的答案。

MSDN IActionResult

示例:

public IActionResult About() {
    ViewData["Message"] = "About Page";
    return View();
}

2 个答案:

答案 0 :(得分:3)

一般而言,IActionResult类型是动作结果的基本抽象。它被用作表示特定响应类型的其他派生操作结果的基础,其中有许多响应类型。

参考Asp.Net Core Action Results Explained

  

IActionResult和ActionResult

     

IActionResult和ActionResult作为其他操作结果的容器,IActionResult是一个接口,ActionResult是其他操作结果继承的抽象类。所以他们不能像其他行动结果那样被新手和归来。 IActionResult和ActionResult与可用性视角没有太大区别,但由于IActionResult是行动结果的预期契约,因此最好使用它而不是ActionResult。应该使用IActionResult / ActionResult为我们提供更多的灵活性,例如当我们需要根据用户交互返回不同类型的响应时。

引用官方文档Controller action return types in ASP.NET Core Web API

  

当一个动作中有多个ActionResult返回类型时,IActionResult返回类型是合适的。 ActionResult类型表示各种HTTP状态代码。属于此类别的一些常见返回类型是BadRequestResult(400),NotFoundResult(404)和OkObjectResult(200)。

答案 1 :(得分:0)

IActionResult指定服务器应如何响应请求,例如简单地将数据写入响应或返回错误状态代码。

例如,Microsoft.AspNetCore.Mvc.JsonResult序列化从构造函数传递的对象,并将序列化的Json数据写入响应并将mimetype设置为application / json。它可以被理解为"该请求产生一个json字符串"。