Wie lade ich Datei UND Modell mit Web API hoch?

10

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?

    
J. Doe 16.03.2016, 18:58
quelle

1 Antwort

0

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:

%Vor%

Ä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).

    
Niko 09.01.2018 12:04
quelle