Im Grunde versuche ich ein Bild zusammen mit einem Enum mit Web API 2 hochzuladen.
Hier ist die Controller-Signatur:
%Vor%Die Sache ist, wenn ich versuche, ein mehrteiliges Formular (mit einer Datei und einem Typ) zu posten, bekomme ich einen 415 Fehler:
{"Message": "Der Medientyp der Anfrageeinheit" multipart / form-data "ist für diese Ressource nicht unterstützt. "," ExceptionMessage ":" Nein MediaTypeFormatter ist verfügbar, um ein Objekt vom Typ zu lesen 'ResImageType' von Inhalt mit Medientyp 'multipart / form-data'. "," ExceptionType ":" System.Net.Http.UnsupportedMediaTypeException "," StackTrace ":" bei System.Net.Http.HttpContentExtensions.ReadAsAsync [T] (HttpContent Inhalt, Typtyp, IEnumerable
1 formatters, IFormatterLogger formatterLogger, CancellationToken cancellationToken)\r\n at System.Web.Http.ModelBinding.FormatterParameterBinding.ReadContentAsync(HttpRequestMessage request, Type type, IEnumerable
1 Formatierer, IFormatterLogger formatterLogger, CancellationToken cancellationToken) "}
Ich habe meiner startup.cs-Klasse sogar Folgendes hinzugefügt:
%Vor%Wie kann ich ein Modell zusammen mit einer Datei mit einem Web-API-Controller hochladen?
Es gibt keinen Formatierer, der mit Ihrem ResImageType
-Objekt umgehen könnte. Ich habe einmal ein ähnliches Problem ohne Formatierer gelöst, indem ich eine Methode ohne Parameter verwendet habe und die Daten innerhalb der Methode verarbeitet habe. Zum Beispiel:
Ähnliche Lösung von MS Docs
Eine andere Möglichkeit besteht darin, eine DTO-ähnliche Klasse zu erstellen, mit der das Objekt übertragen und ein Formatierer verwendet wird, z. B. MultipartDataMediaFormatter scheint echt (habe nicht versucht).
Tags und Links asp.net-web-api asp.net rest http asp.net-web-api2