Ich habe kürzlich meine Web-API von .Net Core 2.2 auf .Net Core 3.0 aktualisiert und festgestellt, dass meine Anforderungen jetzt einen Fehler erhalten, wenn ich eine Aufzählung in einem Beitrag an meinen Endpunkt übergebe. Zum Beispiel:
Ich habe das folgende Modell für meinen API-Endpunkt:
public class SendFeedbackRequest
{
public FeedbackType Type { get; set; }
public string Message { get; set; }
}
Wo der FeedbackType so aussieht:
public enum FeedbackType
{
Comment,
Question
}
Und das ist die Controller-Methode:
[HttpPost]
public async Task<IActionResult> SendFeedbackAsync([FromBody]SendFeedbackRequest request)
{
var response = await _feedbackService.SendFeedbackAsync(request);
return Ok(response);
}
Wohin sende ich dies als Postkörper an den Controller:
{
message: "Test"
type: "comment"
}
Und ich erhalte jetzt die folgende Fehlermeldung an diesem Endpunkt:
The JSON value could not be converted to MyApp.Feedback.Enums.FeedbackType. Path: $.type | LineNumber: 0 | BytePositionInLine: 13."
Dies funktionierte in 2.2 und startete den Fehler in 3.0. Ich habe gesehen, wie sich der JSON-Serializer in 3.0 geändert hat, bin mir aber nicht sicher, wie ich damit umgehen soll.