C# IHttpActionResult vs IActionResult

C# IHttpActionResult vs IActionResult,c#,rest,asp.net-core,C#,Rest,Asp.net Core,我正在使用.NETCore2创建一个API,为使用不同技术开发的许多应用程序提供数据。我当前正在从我的方法返回IActionresult。我一直在研究返回数据的最佳方法,并看到了一些使用IHttpActionResult的示例。现在我不知道哪种类型最好退货 IHttpActionResult和IActionresult之间有什么区别?IHttpActionResult用于ASP.NET Web Api,而IActionresult用于ASP.NET核心。ASP.NET核心中没有“Web Api”

我正在使用.NETCore2创建一个API,为使用不同技术开发的许多应用程序提供数据。我当前正在从我的方法返回
IActionresult
。我一直在研究返回数据的最佳方法,并看到了一些使用
IHttpActionResult
的示例。现在我不知道哪种类型最好退货


IHttpActionResult
IActionresult
之间有什么区别?

IHttpActionResult
用于ASP.NET Web Api,而
IActionresult
用于ASP.NET核心。ASP.NET核心中没有“Web Api”这样的东西。这一切都只是“核心”。然而,有些人仍然将创建ASP.NET核心API称为“Web API”,这增加了混淆。

这取决于您将要使用的ASP.NET的版本。它可以是
.netcore
版本,也可以是传统版本

如Chris所述,您只能在
ASP.NET Core
中使用
IActionResult

我正在创建一个API


好的,如果您使用的是传统的
ASP.NET
,而不是
.NET核心
,那么您可以使用
IHttpActionResult
:,否则请坚持使用
IActionResult

“IActionResult是应该在您的操作中使用的新抽象。由于Web API和MVC框架已经统一在ASP.NET核心中,各种IActionResult实现可以处理这两种传统API场景。“。检查,实际上,从2.1开始,您应该使用
ActionResult
而不是
IActionResult
@p3tch-thx。我不清楚这一点。对于
IActionResult
ActionResult
相比,没有任何具体的建议。您当然可以选择使用
ActionResult
,但这不是必需的。我使用的是.net core 2。然后坚持使用
IActionResult
,这非常有用,因为您可以使用该接口返回任何内容。想想
Ok()
BadRequest()
等等,谢谢。所以,我能对使用IActionResult感到如此兴奋吗?因为这是一种很好的做法?甚至微软自己有时也会提到ASP.NET核心Web API。e、 还有,是的。我认为他们这样做是为了让那些只熟悉ASP.NETWebAPI的人过渡,但最终会把一切都弄糊涂。Core没有实际的区别,当你搜索“Web Api”时,你只会得到一堆错误的、过时的信息。@KirkLarkin:他们这样做是因为当创建一个核心Web应用程序时,visual studio提供的内部模板之一是“Api”(Api、Web应用程序、Web应用程序MVC等)@ChrisPratt:根据我上面的评论,引用“ASP.NET核心API”是有意义的(这种混淆是从Visual Studio的核心web项目模板继承而来的…)