После обновления до ASP.NET Core 3.0 с 2.2, No route matches the supplied values
появилось сразу после выполнения CreateAsync
. Это вызвано CreatedAtAction. Я попытался установить атрибут GetByIdAsync на [HttpGet("{id}", Name = "Get")]
, но это не сработало. Я проверил другие связанные темы, но мой код выглядит нормально для меня.
// GET: api/Bots/5
[HttpGet("{id}")]
public async Task<ActionResult<BotCreateUpdateDto>> GetByIdAsync([FromRoute] int id)
{
var bot = await _botService.GetByIdAsync(id);
if (bot == null)
{
return NotFound();
}
return Ok(_mapper.Map<BotCreateUpdateDto>(bot));
}
// POST: api/Bots
[HttpPost]
public async Task<ActionResult<BotCreateUpdateDto>> CreateAsync([FromBody] BotCreateUpdateDto botDto)
{
var cryptoPair = await _botService.GetCryptoPairBySymbolAsync(botDto.Symbol);
if (cryptoPair == null)
{
return BadRequest(new { Error = "Invalid crypto pair." });
}
var timeInterval = await _botService.GetTimeIntervalByIntervalAsync(botDto.Interval);
if (timeInterval == null)
{
return BadRequest(new { Error = "Invalid time interval." });
}
var bot = new Bot
{
Name = botDto.Name,
Status = botDto.Status,
CryptoPairId = cryptoPair.Id,
TimeIntervalId = timeInterval.Id
};
try
{
await _botService.CreateAsync(bot);
}
catch (Exception ex)
{
return BadRequest(new { Error = ex.InnerException.Message });
}
return CreatedAtAction(nameof(GetByIdAsync), new { id = bot.Id }, _mapper.Map<BotCreateUpdateDto>(bot));
}