【发布时间】:2019-10-21 12:32:40
【问题描述】:
我的方法只返回没有内容的响应。
控制器
[HttpGet("Floors/{floorId}", Name = "FloorById")]
public IActionResult GetFloor(int floorId)
{
try
{
Floor floor = _repository.Floor.GetFloor(floorId);
if (floor == null)
return NotFound();
return Ok(floor);
}
catch (Exception e)
{
return StatusCode(500, "text");
}
}
存储库
public Floor GetFloor(int floorId)
{
return _context.Floors.FirstOrDefault(f => f.Id == floorId);
}
理想情况下,此代码也应返回带有对象的 Ok 响应。
相反,我只在使用 swagger 时得到 Ok 响应。甚至 NotFound 也没有。
【问题讨论】:
-
控制器动作是怎么调用的?
-
@Fildor 解决了 Ok() 没有返回任何内容的问题,但我的 NotFound 仍然没有被 swagger ui 拾取。你能解释一下我什么时候应该使用 IActionResult 和 ActionResult 吗?
-
@Nkosi 我不明白这个问题。
-
您从哪里得到 Ok 响应?您如何调用仅返回 Ok 响应的操作
-
@Nkosi 我刚刚开始使用 swagger ui 来测试我的 api。显然,我在这里做了很多坏事。 imgur.com/a/w4opMXR 这是一个例子。这是实际的 GetFloor 方法:imgur.com/a/rPqvBb4
标签: c# swagger asp.net-core-webapi