Ich schlage vor, dass Sie es so nicht tun sollten. Die Aktionsmethoden sollten so konzipiert sein, dass sie problemlos in der Einheit getestet werden können. In diesem Fall sollten Sie nicht direkt auf Daten von der Anfrage zugreifen, denn wenn Sie es so machen, müssen Sie, wenn Sie diesen Code testen wollen, eine HttpRequestMessage
erstellen.
Sie sollten es so machen MVC für Sie alle Modell verbindlich machen lassen:
[HttpPost]
public void Confirmation(YOURDTO yourobj)//assume that you define YOURDTO elsewhere
{
//your logic to process input parameters.
}
Falls Sie wollen die Anforderung zuzugreifen. Sie greifen einfach auf die Request-Eigenschaft des Controllers zu (nicht über Parameter). Wie folgt aus:
[HttpPost]
public void Confirmation()
{
var content = Request.Content.ReadAsStringAsync().Result;
}
In MVC, ist die Anfrage Eigenschaft tatsächlich ein Wrapper um .NET Httprequest und von einer Basisklasse erben. Wenn Sie einen Komponententest durchführen müssen, können Sie auch dieses Objekt vortäuschen.
Was bekommen Sie von 'request.Content'? – Mansfield
Ich sehe alle Header und die Länge des Inhalts, aber wo sind die Daten? – user1615362