【ASP.NET Core】Action返回结果(IActionResult、ActionResult<T>)

Action返回类型

特定类型

返回类型是特定类型,状态码是200,如果想返回其他的HTTP状态码类型,只能设置ResponseStatusCode,不优雅

public Person Person1([FromQuery] int id = 1)
{
    if (id != 1)
    {
        Response.StatusCode = 404;
    }
    return new Person { ID = id };
}

IActionResult

public IActionResult Person2([FromQuery] int id = 1)
{
    if (id!=1)
    {
        return NotFound();
    }
    return Ok(new Person { ID = 1 });
}

ActionResult

它支持返回从 ActionResult 派生的类型或返回特定类型。 ActionResult<T> 通过 IActionResult 类型可提供以下优势:

  • 可排除 [ProducesResponseType] 特性的 Type 属性
  • 隐式强制转换运算符支持将 TActionResult 均转换为 ActionResult<T>。 将 T 转换为 ObjectResult,也就是将 return new ObjectResult(T); 简化为 return T
public ActionResult<Person> Person3([FromQuery] int id = 1)
{
    if (id != 1)
    {
        return NotFound();
    }
    return new Person { ID = 1 };//可以省略OK()
}
posted @   .Neterr  阅读(649)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示