特定类型
最简单的操作返回基元或复杂数据类型(例如,或自定义对象类型和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错误");
}
}