我最近将Web API从.Net core 2.2升级到了.Net core 3.0,并注意到当我在端点中将枚举传递给端点时,我的请求现在出错了。例如:
我的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中启动错误。我看到了有关3.0中更改json序列化程序的讨论,但不确定如何处理。