IActionResult与IResult ASP.NET核心

vwoqyblh  于 2023-03-13  发布在  .NET
关注(0)|答案(2)|浏览(341)

Microsoft.AspNetCore.Http.IResult和Microsoft.AspNetCore.Mvc.IActionResult之间有什么区别?当我要构建一个API时,我应该使用哪一个?我通常使用Results类及其方法。

bfrts1fy

bfrts1fy1#

IActionResult定义了一种契约,因为它是一个接口,允许您基于您的操作提供更多的操作,如重定向。改变响应的格式等。操作就像http对话框和MVC Web应用程序之间的代码中的新层,它提供更多依赖于http请求的操作,因此您将能够通过与对应的任何类型的请求到达API中的任何端点Http协议。我强烈推荐您在Web应用程序- MVC一侧使用IActionResult,因为它为您提供了更多处理请求的方法。希望它对您有所帮助:)

kkih6yb8

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

相关问题