2010-10-20 4 views
2

Comment puis-je passer la sortie json de l'action du contrôleur à sa vue? Comme je l'ai essayé d'envoyer avant, mon code est:comment envoyer une sortie JSON à afficher dans asp.net mvc

public ActionResult Index() 
{ 
    Guid Id = new Guid("66083eec-7965-4f3b-adcf-218febbbceb3"); 
    List<TasksToOfficer> officersTasks = tasks_to_officer_management.GetTasksToOfficers(Id); 
    return Json(officersTasks) 

}

il demande JsonRequestBehavior.AllowJson comme paramètre. Je sais que c'est nouveau dans asp.net mvc 2 mais comme rediriger pour voir il n'y a rien qui se passe mais demandant le téléchargement du fichier de sortie json. Je veux travailler avec les données retournées dans mon jQuery. Mais quelque chose ne va pas là. et si j'ai supprimé le paramètre alors il montre l'erreur:
Cette demande a été bloquée parce que l'information sensible pourrait être divulguée aux sites Web de tiers quand ceci est employé dans une demande de GET. Pour autoriser les requêtes GET, définissez JsonRequestBehavior sur AllowGet.


Comment éviter cela et obtenir des données json à vue?

Répondre

6

Voici un exemple de ce que vous essayez de faire. Tout d'abord, selon vous, vous appelez $.getJSON pour saisir les données JSON de l'action:

$.getJSON('/Data/StockQuote', function(data) { 
    if (data.success) { 
     ShowStockQuote(data);       
    } 
}); 

alors votre action ressemblera à ceci:

public JsonResult GetStockQuote() 
    {     
     JsonResult result = new JsonResult() 
     { 
      Data = new { 
       lastTradePrice = 50, 
       lastUpdated = "10/1/2010", 
       expirationDate = "10/2/2010", 
       success = true 
      }, 
      JsonRequestBehavior = JsonRequestBehavior.AllowGet 
     }; 

     return result; 
    } 

Une fois les données JSON est renvoyé de votre action à la $.getJSON vous pouvez utiliser des données pour accéder à toutes les valeurs hors de l'objet JSON. Donc, data.success vous donnera le succès et ainsi de suite.

+0

Merci pour la réponse, mais ce qui est StockQuote et ShowStockQuote (données) dans ce code? Je pense que l'action est le nom GetStockQuote(). ce que je dois considérer là> –

+0

ok mais puis-je garder mon type de retour d'action en tant que résultat de Json? au lieu de ActionResult? Je l'ai essayé il prend le type de retour comme ci-dessus, mais demande toujours le téléchargement. que dois-je faire? –

+0

helllloooooooooo ya quelqu'un? veuillez résoudre ceci. ou s'il vous plaît dites-moi s'il y a une option plutôt que JSON? –

Questions connexes