我有这段代码,但是控制器希望返回ActionResult的类型。
为何控制器接受return await _context.Users.ToListAsync();
这样的Task>(生成控制器时的默认代码)?
//controller
public async Task<ActionResult<IEnumerable<User>>> GetUsers()
{
return await _userService.GetAll();
}
//service method
public async Task<IEnumerable<User>> GetAll()
{
return await _db.Users.ToListAsync();
}
答案 0 :(得分:1)
我相信您需要类似的东西:
public async Task<ActionResult<IEnumerable<User>>> MyController()
{
var res = await _userService.GetAll();
if (res == null)
{
return NotFound();
}
return Ok(res);
}
作为旁注,我建议将IEnumerable<>
更改为IList<>
。在这里返回一个可枚举并不是严格正确的,而且您还可能遇到“多个枚举”问题。