C# Web-service, wie zum empfangen von JSON
Machte ich einen JSON-string mit jquery, und ich möchten, senden Sie es zu einem C# - web-api-controller.
Dies ist ein Beispiel für die JSON-Objekt
{"Name":"","Type":"4","Meals":["2","3"],"Excludes":["Beef","Chicken"]}
Ich habe versucht, es zu senden, mit einer URL wie dieser
API/Recipe/Search?json={"Name":"","Type":"4","Meals":["2","3"],"Excludes":["Beef","Chicken"]}
Mit meinem Controller, wie diese:
public class RecipeController : ApiController
{
[HttpGet]
public string Search(searchObject json)
{
return "Asdasd";
}
}
und wie diese
public class RecipeController : ApiController
{
[HttpGet]
public string Search(string json)
{
searchObject search = (searchObject)JsonConvert.DeserializeObject(json);
return "Asdasd";
}
}
Aber in keinem Fall die controller werden es abholen. Ich bin mit MVC4.
Hier ist die Jquery verwende ich, um den Anruf zu tätigen. apiLink ist der link, den ich oben gepostet.
$.getJSON(apiLink, function (data) {
var items = [];
$.each(data, function (key, val) {
items.push('<li id="' + key + '">' + val + '</li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('body');
});
Wie bekomme ich den controller zum empfangen der JSON-Objekt?
Dank
- sind Sie offen, die Sie mit jQuery zu nennen Ihre Aktion?
- Ja. Ich Editiere meinen jquery code in der original-jetzt nach rechts. firebug zeigt, dass die link ist ein http-Fehler 400 bad request.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie nutzen POST-Attribut mit der Methode, auf diese Weise werden Sie der Lage, komplexe Objekt, um die Web-API,
Können Sie eine Klasse erstellen des JSON, von json zu cSharp
Dann in Ihrem web-api, die Methode angeben, mit HttpPost-Attribut, Web-API kümmern Deserialisierung von json in der post zu Ihrer Vorlage.
Können Sie versuchen, Spielmann, für den Sie eine post-Anfrage, in den request-header angeben Typ:
und in den request-body fügen Sie Ihre json-und Ausführen
Sieht aus wie Sie haben bereits eine Antwort, aber hier ist der code für eine funktionierende Lösung:
Hinweis: ich habe JsonResult Aktionen in MVC3, aber die Prinzipien sind die gleichen
Controller:
Anzeigen:
Hoffe, das hilft...