Wie zu Lesen FormData in WebAPI
Habe ich eine ASP.NET MVC WebApplication wo ich bin mit dem ASP.NET Web-API-framework.
Javascript-code:
var data = new FormData();
data.append("filesToDelete", "Value");
$.ajax({
type: "POST",
url: "/api/FileAttachment/UploadFiles?clientContactId=" + clientContactId,
contentType: false,
processData: false,
data: data,
success: function (result) {
//Do something
},
error: function (xhr, status, p3, p4) {
//Do something
}
});
C# - code (WebAPI):
public void UploadFiles(int clientContactId) {
if (!Request.Content.IsMimeMultipartContent()) {
throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
}
var jsonContent = Request.Content.ReadAsStringAsync().Result;
}
Wie lese ich jsonContent
basierend auf einem Schlüssel-Wert-paar übergeben, die von Javascript FormData?
Habe ich versucht zu tun JsonConvert.DeserializeObject<?>
, aber es erfordert eine bestimmte Art zu Deserialisieren in.
Ich will den Wert des Schlüssels "filesToDelete"
bestanden aus dem Javascript FormData.
Wie bekomme ich diesen Wert?
- Fügen Sie einen parameter
[FromBody]string filesToDelete
Ihrer Methode vorausgesetzt, Ihr seid wirklich die übergabe eines string
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was ich Machen würde ist:
Client-Seite: Statt der übergabe clientContactId im query-string. Befestigen Sie die Schlüssel-Wert-paar in das FormData-Objekt selbst. Legen Sie die dataType JSON.
Server-Seite: Auf server-Seite können wir die raw-Anfrage mit
HttpContext.Current.Request
.Damit können wir die Werte, indem Sie einfach mit der-Taste Werte
FormData
Objekt inHttpContext.Current.Request.Params["KeyValue"]
.Wenn Sie wollen, um Daten zu senden mit JSON, wie, dass Sie sollte definieren, ein Modell in C# entspricht dem Modell, das Sie vorbei sind wieder im JSON-Format. Ihre WebApi controller-Methode wird in etwa so Aussehen:
Um die "filesToDelete" Wert, den Sie verwenden können,JSON.NET. der code:
Können Sie erstellen
dynamic
Objektdann können Sie Zugriff
filesToDelete
wieIch denke, dass dieses tutorial aus dem ASP.NET website könnte das sein, was du suchst:
Senden von HTML-Formular Daten in ASP.NET Web-API: Form-urlencoded Daten
Basierend auf deinem Beispiel-code bin ich mir nicht sicher, ob Sie brauchen, eine komplexe Art von der form-Daten oder nur eine einzelne Ganzzahl, basierend auf der UploadFiles(int clientContactId) - Methode im API-Controller. Die Signatur macht es scheinen, wie Sie versuchen nur, einen einzigen integer. Wenn das der Fall ist, Ihre API-Controller-Methode könnte wie folgt Aussehen:
Und dein AJAX-call wird in etwa so Aussehen:
Wenn Sie bereits die Daten formatiert als JSON in JavaScript, können Sie schicken Sie es in den Körper der Anfragen. Die Controller-Methode könnte wie folgt Aussehen:
Und Ihre AJAX-Aufruf könnte wie folgt Aussehen:
Finden Sie in der Anleitung, die ich im Zusammenhang mit oben, aber ich denke, der erklären kann, die Dinge ein wenig besser für Sie.
Bitte verwenden Sie die unten für den Wert in der Steuerung,