Невозможно заставить работать один из моих запросов put (ошибка CORS) - PullRequest
0 голосов
/ 07 июня 2019

Я нахожусь в тупике при получении моего относительно простого запроса 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;
}

1 Ответ

0 голосов
/ 07 июня 2019

Оказывается, моя проблема заключалась в том, что в моём dbcontext, помеченном в скаффолде, поле Step было указано как составной ключ.Этот проект предназначен для старой базы данных, и тот, кто ее разработал, использовал составные ключи, а не уникальные идентификаторы. Я исправил это в тестовой системе, и как только я удалил это поле из построителя моделей, мой код начал работать.

Спасибо всем за внимание к моей проблеме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...