Wpis z mikrobloga

Skąd ASP.NET Core "wie", że musi użyć model binding technique, która używa [FromBody]? To zachowanie domyślne ASP.NET Core?

[HttpPost]
public async Task<ActionResult<TodoItem>> PostTodoItem(TodoItem todoItem)
{
_context.TodoItems.Add(todoItem);
await _context.SaveChangesAsync();

// return CreatedAtAction("GetTodoItem", new { id = todoItem.Id }, todoItem);
return CreatedAtAction(nameof(GetTodoItem), new { id = todoItem.Id }, todoItem);
}

#csharp #aspnetcore #dotnet #naukaprogramowania #pytanie
  • 2
  • Odpowiedz
@_gabriel: Domyślne zachowanie.
Jeśli parametrem metody jest typ prosty (int/double/string itd.) to domyślnie jego wartość będzie poszukiwana w url requestu, jeśli jest to obiekt złożony to dane będą poszukiwane w body requestu.

Można również ten mechanizm ominąć, tj zrobić:

(...) PostTodoItem([FromBody] int someValue)
aby wczytać typ prosty z body

lub

(...) PostTodoItem([FromQuery] TodoItem todoItem)
aby wczytać tym złożony z adresu url
  • Odpowiedz