Comment retourner un objet Json sur le Web API Contrôleur
J'ai utilisé ce code ci-dessous sur mon asp.net contrôleur pour revenir objet Json sur mon Ajax javascript
public JsonResult myMethod()
{
//return a Json Object, you could define a new class
return Json(new
{
Success = true, //error
Message = "Success" //return exception
});
}
Jquery-Ajax:
$.ajax({
type: "POST",
url: url_ ,
data: search,
success: function(data) {
//Show Json Properties from Controller ( If Success == false show exception Message from controller )
if (data.Success)
{
alert(data.Message); //display success
}
else
{
alert(data.Message) //display exception
}
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert("error: " + XMLHttpRequest.responseText);
},
dataType: 'json'
});
Comment cela peut-il être fait sur le Web Api Contrôleur?
Pouvez-vous me donner des exemples ou l'url de référence.
Merci et Salutations
Vous devez vous connecter pour publier un commentaire.
Si vous créez vous-même un nouveau HttpContent classe pour la fourniture de JSON, comme...
Alors vous pouvez le faire,
comme vous le feriez avec JsonResult.
Request.CreateResponse(....,myJsonObject)
?)ASP.NET Web API travaille avec un peu différente de la philosophie. Vous devez retourner seulement une entité (ou les entités) et c'est à la négociation de contenu mécanisme à retourner au client dans le format qu'il a demandé. Vous pouvez lire plus au sujet de la négociation de contenu ici:
Bien sûr, vous pouvez contourner le contenu negiotiation en retournant un
HttpResponseMessage
. Dans ce cas, yo besoin de sérialiser l'objet en JSON vous-même (les bases de cette approche sont également décrites dans l'article mentionné ci-dessus).Après la lecture de tpeczek réponse, Darrel Miller réponse, et leur commentaire conversation en tpeczek réponse, je voulais obtenir plus de conseils sur quand ou pourquoi je veuille utiliser l'Api Web et de son contenu mécanisme de négociation. tpeczek du lien est instructif et utile, mais j'en ai trouvé deux autres write-ups qui étaient plus orientées à la comparaison de l'utilisation de l'Api Web (et ses de la négociation de contenu) avec, par exemple, de la plaine MVC 4 actions de contrôleur que le retour
JsonResult
. Voici celles que j'ai trouvé utile de prendre une telle décision. L'auteur conclut qu'il préfère à l'aide de la plaine MVC 4 contrôleurs tandis que l'autre auteur préfère utiliser des contrôleurs d'Api Web:la Construction d'un Public de l'API HTTP pour les Données
Je crois qu'il existe une correction nécessaire au-dessus de l'auteur du post. Il y mentionne que,
Selon cette réponse, vous pouvez en effet avoir plusieurs 'Get' méthodes dans le même contrôleur si vous spécifiez un
ActionName
attribut. Maintenant, voici le deuxième post:ASP.NET l'API Web vs ASP.NET MVC “Api”