Microsoft.AspNetCore.Http.IResult和Microsoft.AspNetCore.Mvc.IActionResult之间有什么区别?当我要构建一个API时,我应该使用哪一个?我通常使用Results类及其方法。
bfrts1fy1#
IActionResult定义了一种契约,因为它是一个接口,允许您基于您的操作提供更多的操作,如重定向。改变响应的格式等。操作就像http对话框和MVC Web应用程序之间的代码中的新层,它提供更多依赖于http请求的操作,因此您将能够通过与对应的任何类型的请求到达API中的任何端点Http协议。我强烈推荐您在Web应用程序- MVC一侧使用IActionResult,因为它为您提供了更多处理请求的方法。希望它对您有所帮助:)
kkih6yb82#
IActionResult是MVC框架的一部分。它位于Microsoft.AspNetCore.Mvc.Abstractions.dll库的Microsoft.AspNetCore.Mvc命名空间中。通常用于基于MVC的Web API实现中。自从ASP.NET MVC首次启动以来,它已经存在了相当长的一段时间。它存在于.NET框架和所有版本的.NET Core /. NET中。Microsoft Learn: IActionResult Interface
IActionResult
Microsoft.AspNetCore.Mvc.Abstractions.dll
Microsoft.AspNetCore.Mvc
IResult是作为.NET 6.0的一部分引入的新API框架的一部分。它位于Microsoft.AspNetCore.Http.Abstractions.dll库的Microsoft.AspNetCore.Http命名空间中。.NET 6.0+的最低API新功能完全支持IResult。Microsoft Learn: IResult Interface□ □他们是彼此继承的吗?不,这些接口是完全独立的,来自不同的名称空间和库。
IResult
Microsoft.AspNetCore.Http.Abstractions.dll
Microsoft.AspNetCore.Http
这取决于具体情况,但通常情况下,如果您使用的是基于MVC的API控制器,则应考虑使用IActionResult(或ActionResult基类,如果需要)。如果您正在使用.NET 6.0+编写没有MVC的API,无论是使用Minimal API框架还是其他框架,您都应该考虑使用IResult。
ActionResult
以下是Microsoft Learn中的一些优秀资源,它们提供了对API开发各个领域的概述和有用见解。Microsoft Learn: Controller action return types in ASP.NET Core web APIMicrosoft Learn: ASP.NET Core Fundamentals OverviewMicrosoft Learn: Tutorial: Create a minimal API with ASP.NET CoreMicrosoft Learn: Tutorial: Create a web API with ASP.NET CoreMicrosoft Learn: Overview of ASP.NET Core MVC
2条答案
按热度按时间bfrts1fy1#
IActionResult定义了一种契约,因为它是一个接口,允许您基于您的操作提供更多的操作,如重定向。改变响应的格式等。操作就像http对话框和MVC Web应用程序之间的代码中的新层,它提供更多依赖于http请求的操作,因此您将能够通过与对应的任何类型的请求到达API中的任何端点Http协议。我强烈推荐您在Web应用程序- MVC一侧使用IActionResult,因为它为您提供了更多处理请求的方法。希望它对您有所帮助:)
kkih6yb82#
I操作结果与I结果
I操作结果
IActionResult
是MVC框架的一部分。它位于Microsoft.AspNetCore.Mvc.Abstractions.dll
库的Microsoft.AspNetCore.Mvc
命名空间中。通常用于基于MVC的Web API实现中。自从ASP.NET MVC首次启动以来,它已经存在了相当长的一段时间。它存在于.NET框架和所有版本的.NET Core /. NET中。Microsoft Learn: IActionResult Interface
I结果
IResult
是作为.NET 6.0的一部分引入的新API框架的一部分。它位于Microsoft.AspNetCore.Http.Abstractions.dll
库的Microsoft.AspNetCore.Http
命名空间中。.NET 6.0+的最低API新功能完全支持IResult
。Microsoft Learn: IResult Interface
□ □他们是彼此继承的吗?
不,这些接口是完全独立的,来自不同的名称空间和库。
我应该何时使用其中一种还是另一种?
这取决于具体情况,但通常情况下,如果您使用的是基于MVC的API控制器,则应考虑使用
IActionResult
(或ActionResult
基类,如果需要)。如果您正在使用.NET 6.0+编写没有MVC的API,无论是使用Minimal API框架还是其他框架,您都应该考虑使用
IResult
。其他Microsoft学习资源
以下是Microsoft Learn中的一些优秀资源,它们提供了对API开发各个领域的概述和有用见解。
Microsoft Learn: Controller action return types in ASP.NET Core web API
Microsoft Learn: ASP.NET Core Fundamentals Overview
Microsoft Learn: Tutorial: Create a minimal API with ASP.NET Core
Microsoft Learn: Tutorial: Create a web API with ASP.NET Core
Microsoft Learn: Overview of ASP.NET Core MVC