【问题标题】:Gettin a todo item by ID通过 ID 获取待办事项
【发布时间】:2022-11-23 10:06:31
【问题描述】:

我是 C#、.Net、MVC 和 Swagger UI 的新手。我正在做一个待办事项列表项目。我可以发布待办事项并获取待办事项,但我无法通过 ID 获取单个待办事项。这个错误会出现在我的控制器中吗?


[ApiController]
[Route("[controller]")]
public class TodoItemsController : ControllerBase
{
    private readonly TodoContext _context;
    public TodoItemsController(TodoContext context)
    {
        _context = context;
    }

    [HttpGet(Name = "GetTodoItems")]
    public async Task<ActionResult<IEnumerable<Todo>>> GetTodoItems()
    {
        return Ok(await _context.Todos.ToListAsync());
    }

    [HttpGet("{id}", Name = "GetTodoItem")]
    public async Task<ActionResult<Todo>> GetTodoItem(int? id)
    {
        if (id != null)
            return new NotFoundResult();
        
        var todo = await _context.Todos.FindAsync(id);

        return Ok(todo);
    }

    [HttpPost(Name = "PostTodoItem")]
    public async Task<ActionResult<Todo>> CreateTodoItem(Todo todo)
    {
        _context.Todos.Add(todo);

        await _context.SaveChangesAsync();

        return CreatedAtAction(nameof(GetTodoItem), new { id = todo.Id }, todo);
    }
}

我一直在寻找解决方案,任何反馈都会有所帮助。

【问题讨论】:

    标签: c# asp.net asp.net-mvc model-view-controller swagger


    【解决方案1】:

    你的问题在这一行,

    if (id != null)
        return new NotFoundResult();
    

    应该,

    if (id == null)
        return new NotFoundResult();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多