Web API 中的控制器操作返回类型(本文演示的都是同步方法)

特定类型
最简单的操作返回基元或复杂数据类型(例如,或自定义对象类型和int 、string等等)
下面这个简单的接口就是特定类型

 [HttpGet]//输入ID返回学生成绩
        public int Getcj1(int id)
        {

            if (id == 1)
            {
                return 88;

            }
            else if (id == 2)
            {

                return 99;
            }
            else
            {
                throw new Exception("id错误");
            }

如果没有在操作执行期间要防范的已知条件,则返回特定类型可能就足够了。前面的操作不接受任何参数,因此不需要参数约束验证。

缺点:无法使用HTTP的方法 如果出现判断条件不符的情况就直接报错了

当一个操作中可能有多个返回类型时,IActionResult 返回类型是合适的。这些类型表示各种 HTTP 状态代码。派生自的任何非抽象类都有资格作为有效的返回类型。此类别中的一些常见返回类型是 BadRequestResult (400)、NotFoundResult (404) 和 OkObjectResult (200)。或者,可以使用 ControllerBase 类中的便利方法从操作返回类型。例如,是 的速记形式。

注意:Web API中Action方法的返回值如果是普通数据类型,那么返回值就会默认被序列化为Json格式。

 [HttpGet]
        public IActionResult Getcj2(int id)
        {

            if (id == 1)
            {
                return Ok(88);

            }
            else if (id == 2)
            {

                return Ok(99);
            }
            else
            {
                return NotFound("id错误");
            }

        }

当可能有多个返回类型时,通常会将 ActionResult 返回类型与基元或复杂返回类型混合使用。IActionResult 或 ActionResult<T>对于适应此类操作是必需的。(可以使用HTTP方法)

4、Web API中的Action方法的返回值同样支持IActionResult类型,不包含类型信息,因此Swagger等无法推断出类型,所以推荐用ActionResult<T>,它支持类型转换,从而用
起来更简单

  [HttpGet]//
        public ActionResult<int> Getcj2(int id)
        {

            if (id == 1)
            {
                return 88;

            }
            else if (id == 2)
            {

                return 99;
            }
            else
            {
                return NotFound("id错误");
            }

        }


 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值