Я нахожусь в тупике при получении моего относительно простого запроса PUT для правильной работы. В моем контроллере у меня есть метод edit (Put), который работает нормально, однако у меня есть второй запрос PUT, который используется как перетаскивание для изменения порядка в контрольном списке, этот метод получает ошибку CORS / HTTP 500, когда я пытаюсь запустить его в Angular или Postman. Я озадачен тем, как работает одна подпрограмма, но другая выдает ошибку
Я попытался отладить и убедиться, что данные правильно передаются в действие контроллера, но они не сохраняются в базе данных, после того, как они попадают в мой оператор foreach, а затем сохраняются, они бомбят
Вот код для редактирования, который работает
[HttpPut("{stepId}")]
public async Task<ActionResult> EditStep(int stepId, LogChecklistSteps step)
{
step.Idstep = stepId;
_repo.EditStep(step);
var history = FileHistory(step, "Draft", "Edited a Step");
_repo.Add(history);
await _repo.SaveAll();
return NoContent();
}
Вот код, с которым у меня проблемы
[HttpPut("reorder")]
public async Task<ActionResult> ReorderSteps(LogChecklist checklist)
{
foreach(var s in checklist.LogChecklistSteps)
{
_repo.ReorderSteps(s);
}
await _repo.SaveAll();
return NoContent();
}
и код в моем репо
public void EditStep(LogChecklistSteps step )
{
_ctx.Entry(step).State = EntityState.Modified;
}
public void ReorderSteps(LogChecklistSteps step)
{
_ctx.LogChecklistSteps.Update(step);
}
public async Task<bool> SaveAll()
{
return await _ctx.SaveChangesAsync() > 0;
}