【问题标题】:IHttpActionResult vs IActionResultIHttpActionResult 与 IActionResult
【发布时间】:2018-07-23 23:12:09
【问题描述】:

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

IHttpActionResultIActionresult 有什么区别?

【问题讨论】:

标签: c# rest asp.net-core


【解决方案1】:

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

【讨论】:

  • 谢谢。那么,我可以对使用 IActionResult 感到如此兴奋,因为它是一种很好的做法吗?
  • 甚至微软自己有时也会提到 ASP.NET Core Web API。例如herehere.
  • 是的。我认为他们这样做是为了让只熟悉 ASP.NET Web Api 的人过渡,但最终只会混淆一切。 Core 没有实际区别,当您搜索“Web Api”时,您最终会得到一堆错误的、过时的信息。
  • @KirkLarkin:他们这样做是因为在创建核心 Web 应用程序时,Visual Studio 提供的内部模板之一是“API”(在 API、Web 应用程序、Web 应用程序 MVC 等之间)跨度>
  • @ChrisPratt:根据我上面的评论,引用“ASP.NET Core API”是有意义的(混淆是从 Visual Studio 的核心 Web 项目模板继承的......)跨度>
【解决方案2】:

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

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

https://docs.microsoft.com/en-us/aspnet/core/web-api/action-return-types?view=aspnetcore-2.1#iactionresult-type

我正在创建一个 API

好吧,如果你使用传统的ASP.NET - 而不是.NET Core,你可以使用IHttpActionResulthttps://docs.microsoft.com/en-us/aspnet/web-api/overview/getting-started-with-aspnet-web-api/action-results,否则坚持使用IActionResult

【讨论】:

  • 我正在使用 .net core 2
  • 然后坚持IActionResult,这非常有用,因为您可以使用该接口返回任何内容。想想Ok()BadRequest() 等。
猜你喜欢
  • 1970-01-01
  • 2015-05-19
  • 2018-07-03
  • 2019-07-30
  • 2014-07-12
  • 1970-01-01
  • 2020-12-29
  • 2017-11-06
  • 2020-05-15
相关资源
最近更新 更多