Как заявил ESG, вы пытаетесь выполнить DELETE, поэтому вам нужно использовать глагол DELETE, а не глагол GET. По этой причине вы получаете метод 405 Not Allowed (вы не можете использовать GET для действия DELETE). Вы должны использовать такой инструмент, как PostMan (https://www.postman.com/) для создания ваших запросов DELETE, поскольку вы не можете легко сделать это просто в браузере.
Чтобы больше соответствовать Соглашение REST, вам следует немного изменить метод DELETE:
[HttpDelete("{id}")]
public async Task<ActionResult> DeleteFamily([FromRoute] int id)
{
Family user = db.Families.FirstOrDefault(x => x.Id == id);
if (user == null)
{
return NotFound();
}
db.Families.Remove(user);
await db.SaveChangesAsync();
return NoContent();
}
Затем вы бы назвали это DELETE https://localhost: 44373 / api / family / 2
Используя атрибут [HttpDelete ("{id}"]), вы перемещаете идентификатор из строки запроса в URI, что больше соответствует соглашению REST (URI представляет объект). Обычно используются параметры строки запроса для дополнительных возможностей, таких как фильтрация, сортировка и т. д. c, а не конечная точка, представляющая сам объект.
Обычно действия DELETE не возвращают содержимое, но это зависит от вас. Если вы действительно хотите вернуть пользовательский объект, затем придерживайтесь Ok (пользователь), но NoContent более типично для глагола DELETE.