C# IHttpActionResult vs IActionResult
我正在使用.NETCore2创建一个API,为使用不同技术开发的许多应用程序提供数据。我当前正在从我的方法返回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”
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项目模板继承而来的…)