Frage Verarbeiten von Querystring- und Formularparametern mit der Web-API


Wenn Sie aus irgendeinem Grund nicht Modelbinding in einer HttpPost-Anfrage verwenden, welche anderen Möglichkeiten gibt es, auf die QueryString (HttpGet) oder Form-Parameter (HttpPost) zuzugreifen?

Traditionell könnten Sie Folgendes tun:

Request.QueryString["Key"]
Request.Form["Key"]
Request["Key"]

Ich kann nichts ähnliches in Web API finden.


8
2017-08-12 14:29


Ursprung


Antworten:


Für Abfragezeichenfolgenparameter, die Sie verwenden können GetQueryNameValuePairs auf einen HttpRequestMessage (es ist eine Erweiterungsmethode).

Für Formulardaten müssen Sie die Aktion definieren, und die Rohformdaten (Vorparameterbindung) werden an Sie übergeben:

public void Post(NameValueCollection formData)
{
   var value = formData["key"];
}

8
2017-08-12 14:37



var queryString = request.RequestUri.ParseQueryString ();
token = queryString ["Autorisierung"];


2
2018-03-09 11:45



Hier kommt Intellisense zum Einsatz. Schreib einfach Request. und sehen, was Sie für Sie verfügbar haben. Ich habe persönlich immer nur Parameter für meine Methode angegeben, an die die Daten gebunden werden sollen. nicht wirklich sicher, welcher Anwendungsfall existiert, wo man nicht einfach so damit umgehen würde. Trotzdem, von dem, was ich sehen kann, gibt es Request.GetQueryNameValuePairs damit können Sie zumindest die Abfragezeichenfolge abrufen. Ich kann nichts sehen Request das gibt dir Zugriff auf den Post-Körper, aber vielleicht habe ich es verpasst, oder es ist irgendwo anders begraben Request.


0
2017-08-12 14:37