2008-09-19 14 views

Répondre

22

À partir du contrôleur, vous pouvez simplement retourner un JsonResult:

public ActionResult MyAction() 
{ 
    ... // Populate myObject 
    return new JsonResult{ Data = myObject }; 
} 

La forme de l'appel Ajax dépendra de quelle bibliothèque que vous utilisez, bien sûr. En utilisant jQuery ce serait quelque chose comme:

$.getJSON("/controllerName/MyAction", callbackFunction); 

où le callbackFunction prend un paramètre qui est les données de la demande XHR.

+0

Comment passeriez-vous les paramètres à MyAction? – Picflight

+0

Pas de formatage dans un commentaire, mais ... $ .getJSON ("/ controllerName/MyAction", {id: 7}, callbackFunction); – BenB

10

En fonction de vos préférences de syntaxe, ce qui suit fonctionne aussi:

public ActionResult MyAction() 
{ 
    return Json(new {Data = myObject}); 
} 
0

Si vous devez envoyer JSON en réponse à une requête GET, vous devez autoriser explicitement le comportement en utilisant JsonRequestBehavior.AllowGet.

public JsonResult Foo() 
{ 
    return Json("Secrets", JsonRequestBehavior.AllowGet); 
} 
1

Ceci est le petit bloc de code pour juste comprendre, comment nous pouvons utiliser JsonResults dans les contrôleurs MVC.

public JsonResult ASD() 
    { 
    string aaa = "Hi There is a sample Json"; 
    return Json(aaa); 
    }