Не работает запрос POST в контроллере WebAPI
Заголовок вопроса не совсем правильно описывает проблему, POST отрабатывает, но не так, как надо, сейчас поясню.
Есть модель данных User:
public class User
{
public int ID { get; set; }
[Required]
public string Name { get; set; }
public int Age { get; set; }
public string Profession { get; set; }
}
И вот такой контроллер:
[Route("/api/[controller]")]
public class UsersController : Controller
{
List<User> Users { get; set; }
public UsersController()
{
Users = new List<User>(new[]
{
new User() {ID = 1, Name = "Victor", Age = 22, Profession = "waiter"},
new User() {ID = 2, Name = "Igor", Age = 31, Profession = "programmer"},
new User() {ID = 3, Name = "Petr", Age = 12, Profession = "none"}
});
}
[HttpGet]
public IEnumerable<User> GetAllUsers() => Users;
[HttpPost]
public IActionResult Post(User user)
{
if (!ModelState.IsValid) return BadRequest(ModelState);
user.ID = Users.Count() + 1;
Users.Add(user);
return CreatedAtAction(nameof(GetAllUsers), new {id = user.ID}, user);
}
[HttpPost("addUser")]
public IActionResult AddUser([FromBody] User user) => Post(user);
}
Итак, запустим проект и воспользуемся Swagger'ом - делаем Get запрос, всё ок:
Теперь сделаем POST запрос + пройдемся отладкой по коду:
Итак, вроде объект создается и в отладке видно, что в коллекции Users 4 объекта, то есть добавление объекта произошло. Теперь делаем опять get запрос и...
Не могу понять в чем проблема, я что-то не так сделал/пропустил/неправильно тестирую запросы или дело не во мне...
P.S. я ориентируюсь на пример из ютуба, там в принципе такой же код, как и у меня, вроде как.



