Posting JSON zu apicontroller
Ich habe Mühe mit den "neuen" WebApi in Asp.Net...
Ich will einfach nur, um nach ein paar Json-aber es ist nicht zu Deserialisieren meine Daten... was mache ich falsch?!
Controller-Klasse
public class UtilityController : ApiController
{
[HttpPost]
public string Bla(Bla bla)
{
return "bla";
}
}
Bla Klasse:
public class Bla
{
public string Een { get; set; }
public string Twee { get; set; }
}
Api-config:
config.Routen.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{Action}/{id}", defaults: new { id = RouteParameter.Optional } );
Geposteten Daten:
var bla = $.parseJSON ('{'Een":"UNO","Twee":"DURCH"}'); $.ajax({ type: "POST", url: "/api/utility/Bla", Daten: {Bla : bla}, dataType: "json" }).done(function( msg ) { alert( "Data Saved:" + msg ); });
InformationsquelleAutor Martijn Vaandering | 2012-10-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie nicht senden eine JSON-Anfrage. Sie sind für das senden einer
application/x-www-form-urlencoded
Anfrage.So stellen Sie sicher, dass Sie senden eine echte JSON Anfrage:
Hinweis, wie ich die richtige
contentType
headerapplication/json
, wie ich dieJSON.stringify
Methode, um einen JSON-Anforderung und wie habe ich bekommen, loszuwerden, die nutzlosdataType: 'json'
parameter, die jQuery durchaus in der Lage ist automatisch die Aufzucht aus den Content-Type-Antwort-header, die der server sendet.Wenn jetzt $.post hatte nur eine Methode zu sagen, die Sie senden möchten, JSON und nicht form-urlencoded Daten, wäre alles toll.
InformationsquelleAutor Darin Dimitrov
Den
bla
parameter benötigen könnten versehen werden, die mit[ModelBinder]
auf Ihre Post-Methode:Ich denke wirklich, dass der Fehler bei der Deserialisierung von der webapi...
InformationsquelleAutor Nick
Können Sie versuchen, ändern Sie diese Zeile:
:
Kommentar, keine Antwort.
InformationsquelleAutor Joshua