Wie liest du die POST-Daten in einem ASP.Net MVC 3 Web API 2.1-controller?

Scheint dies nicht so einfach wie ich dachte. Ich habe einige Lösungen gefunden, die auf der web, aber Sie sind nicht für mich arbeiten. Ich habe eine ASP.Net MVC 3-Projekt mit Microsoft ASP.Net Web API 2.1 nuget-Paket installiert ist. Nun, ich möchte in der Lage sein, Daten zu Lesen, geschrieben auf einen web-api-controller. Die Daten, die gesendet werden, variieren, so habe ich nicht verwendet, eine stark typisierte ViewModel.

Hier sind die Lösungen habe ich versucht:

    public void Post([FromBody]string value)
    {
        ...
    }


    public void Post([FromBody]List<string> values)
    {
        ...
    }


    public void Post([FromBody]NameValueCollection values)
    {
        ...
    }

Aber mein Wert oder die Werte, die Variablen sind immer leer. Ich weiß, der controller empfängt Daten, aber da kann ich es überprüfen, indem Sie den Zugriff (System.Web.HttpContextWrapper)Anfordern.Properties["MS_HttpContext"].Anfrage.Form. Es sieht nicht aus wie der richtige Weg, um die Daten abzurufen, obwohl. Es sollte ein sauberer Weg.

UPDATE:

Hier ist, wie ich die Buchung der Informationen:

Ich die Buchung der Daten von einem anderen controller in der gleichen web-Anwendung:

    public ActionResult SendEmailUsingService()
    {
        dynamic email = new ExpandoObject();

        email.ViewName = "EmailTest";
        email.From = "[email protected]";
        email.To = "[email protected]";
        email.Fullname = "John Smith";
        email.Url = "www.mysite.com";

        IDictionary<string, object> data = email;

        using (var wb = new WebClient())
        {
            string url = BaseUrlNoTrailingSlash + Url.RouteUrl("DefaultApi", new { httproute = "", controller = "Emailer" });
             var response = wb.UploadValues(url, "POST", data.ToNameValueCollection());
        }

        return View();
    }

Und hier ist das, was ich in mein Post-web-api-controller, wenn ich erkläre ein httpContext-Variablen wie diese:

var httpContext = (System.Web.HttpContextWrapper)Request.Properties["MS_HttpContext"];

httpContext.Anfrage.Form =
{ViewName=EmailTest&From=fromaddress%40yahoo.com&To=toaddress%40gmail.com&Fullname=John+Smith&Url=www.mysite.com}

httpContext.Anfrage.Form ist ein System.Sammlungen.Spezialisierte.NameValueCollection {System.Web.HttpValueCollection}

  • Kannst du Beispiele, wie du Postest die Daten an die API?
  • Bitte sehen Sie sich den Abschnitt UPDATE in meinem ursprünglichen post. Ich habe gerade die Informationen, die Sie Fragen mich.
Schreibe einen Kommentar