首页 > 解决方案 > 为什么JsonResult需要同时实现IActionResult和IStatusCodeActionResult?

问题描述

JsonResult 的文档(如果我们F12进入JsonResultVisual Studio 中的定义,我们也可以看到这一点)

实现 IActionResult、IStatusCodeActionResult

我的问题是为什么它需要实现这两个接口?

IStatusCodeActionResult 的文档说它已经实现了IActionResult

标签: c#asp.net-coreinterfacejsonresult

解决方案


因为 JsonResult 只需要 IStatusCodeActionResult 属性 StatusCode 和方法 ExecuteResultAsync(ActionContext 上下文)。

这是为了让你可以打电话

public IActionResult ActionMethod() 

来自 Asp.Net 控制器。

如果他们这样创建类:

public class JsonResult : IStatusCodeActionResult

然后您需要将操作方法​​更改为

public IStatusCodeActionResult ActionMethod()

开发人员现在将无法灵活地根据与用户/客户端的交互返回其他响应。


推荐阅读