Я недавно обновил свой веб-API с .Net core 2.2 до .Net core 3.0 и заметил, что мои запросы теперь получают ошибку, когда я передаю enum в сообщении моей конечной точке. Например:
У меня есть следующая модель для моей конечной точки API:
public class SendFeedbackRequest
{
public FeedbackType Type { get; set; }
public string Message { get; set; }
}
Где FeedbackType выглядит так:
public enum FeedbackType
{
Comment,
Question
}
И это метод контроллера:
[HttpPost]
public async Task<IActionResult> SendFeedbackAsync([FromBody]SendFeedbackRequest request)
{
var response = await _feedbackService.SendFeedbackAsync(request);
return Ok(response);
}
Где я отправляю это как тело сообщения в контроллер:
{
message: "Test"
type: "comment"
}
И теперь я получаю следующее сообщение об ошибке в этой конечной точке:
The JSON value could not be converted to MyApp.Feedback.Enums.FeedbackType. Path: $.type | LineNumber: 0 | BytePositionInLine: 13."
Это работало в 2.2 и начало ошибки в 3.0. Я видел разговоры об изменении сериализатора json в версии 3.0, но не уверен, как это сделать.