Обзор
– проект Blazor Server с использованием REST API.
-HttpClient
вызывает мой API, используя PostJsonAsync<>
-Db успешно обновляется и возвращает ожидаемый JSON
-API-контроллер Try/Catch не генерирует исключение, выполняет return CreatedAtAction()
-Вывод показывает, что API возвращает 500: Internal Server Ошибка
. При выполнении POST с использованием Swagger выполняется та же строка и возвращается 201
Я в недоумении, что происходит не так. Я занимаюсь программированием только с июля, так что я надеюсь, что просто недостаток опыта не позволяет мне увидеть очевидную проблему в моем коде. Это оскорбительный метод:
public async Task<ActionResult<PlayerCharacter>> CreatePlayerCharacter(PlayerCharacter playerCharacter)
{
try
{
if (playerCharacter != null)
{
var newPlayerCharacter = await _playerCharacterRepository.AddPlayerCharacter(playerCharacter);
//This is the last line of code to execute before the web app crashes with Status Code 500. Executes fine and returns 201 from Swagger.
return CreatedAtAction(nameof(GetPlayerCharacter), new { id = newPlayerCharacter.Id }, newPlayerCharacter);
}
return BadRequest();
}
catch (Exception e)
{
//This break point is not reached
Console.WriteLine(e.StackTrace);
return StatusCode(StatusCodes.Status500InternalServerError, "Error posting data to the database.");
}
}