De retour json à partir de l'api web de contrôleur
J'ai l'api web de contrôleur:
[HttpPost]
public String UploadFile()
{//do some logic
String jsResult="{\"success\":\"false\", \"msg\":\"No file or user ID!\"}";
return jsResult;
}
Chaîne renvoyée au client, c'est comme cela: "{\"succès\":\"false\", \"message\":\"Aucun fichier ou un ID utilisateur!\"}";
Je compose chaîne json manuellement mais le client n'a pas l'analyser(je suppose parce que la chaîne renvoyée est échappé avec "\".
Quelle serait la bonne façon de retourner chaîne json à la clinet à partir de cette méthode de contrôleur?
OriginalL'auteur Simon | 2015-09-03
Vous devez vous connecter pour publier un commentaire.
Essayer de l'auto de sérialiser webapi:
Créer un Modèle:
Et retour
Dans votre exemple, vous êtes explicitement la sérialisation, et le résultat finit par sérialisé deux fois. Parce que WebApi a déjà le sérialiseur Json dans le pipeline.
Aller async:
Ajoutant
using System.Web.Mvc
échoue parce queEt [HttpPost] est ambigu. De toute façon, le Mvc ref n'est pas nécessaire . Retirer et ajouter à nouveau [HttpPost]
Il fonctionne maintenant. Pouvez-vous m'expliquer en quelques mots depuis que je suis nouveau à l'api web. Et pourquoi, si j'ai ajouter une référence à la MVC, il s'arrête de fonctionner? [HttpPost] n'est plus disponible. Merci.
mis à jour!
Merci. Autre option serait d'ajouter comme ceci: [System.Web.Mvc.HttpPost] Et que je serais en mesure d'utiliser JsonResult résultat?
Merci. Il est tout clair maintenant. je vais ouvrir une nouvelle question.
OriginalL'auteur Mate
Essayez ceci:
J'ai changé le type de retour de JsonResult et utilisé la méthode Json au format de votre résultat.
OriginalL'auteur pete the pagan-gerbil