3

Je plonge dans ASP.NET MVC et je viens d'un arrière-plan Ruby on Rails. J'essaie de comprendre comment ASP MVC gère la fonctionnalité AJAX et, après avoir lu certains des tutoriels sur le site ASP, il semble qu'ils implémentent la fonctionnalité AJAX très différemment. Une des façons dont RoR gère la fonctionnalité AJAX est de renvoyer le code javascript ruby-embedded qui est exécuté dès qu'il est reçu par le navigateur. Cela rend l'implémentation d'AJAX très simple et très amusante. ASP.NET MVC peut-il renvoyer une réponse javascript?Est-ce que ASP.NET MVC peut renvoyer une réponse javascript comme Ruby on Rails peut?

Répondre

4

juste utilisateur JavaScript retour (script)

Vous devez exécuter le script java manuellement sur la vue

Pour être plus précis, vous pouvez rendre l'action contrôleur type de retour JavaScriptResult

+0

Merci, cela semble très simple et similaire à ce que je suis habitué à RoR. Voici un petit article de blog que j'ai trouvé lié au type JavaScriptResult qui semble valoir la peine de mentionner http://devlicio.us/blogs/billy_mccafferty/archive/2009/02/07/beware-of-asp-net-mvc-javascriptresult.aspx – BeachRunnerFred

3

Qu'est-ce que vous parlez est appelé générateurs javascript dans le monde RoR et il n'y a pas d'équivalent dans le monde ASP.NET MVC. Voici un blog post qui illustre les bases de l'implémentation d'un RJS de type Rails pour ASP.NET MVC (l'article de blog utilise prototypejs mais pourrait être facilement adapté pour fonctionner avec jquery).


Voici une autre approche utilisant jquery:

public ActionResult Foo() 
{ 
    return Json(new { prop1 = "value1", prop2 = "value2" }); 
} 

et consommer:

$.getJSON('/home/foo', function(result) { 
    // TODO: use javascript and work with the result here, 
    // the same way you would work in a RJS like template 
    // but using plain javascript 
    if (result.prop1 === 'value1') { 
     alert(result.prop2); 
    } 
}); 
+0

super blog, merci. – BeachRunnerFred

+0

Hey Darin, y a-t-il une raison pour que je veuille utiliser l'approche présentée dans cet article de blog au lieu d'utiliser l'approche intégrée que @Andrey a souligné? Merci encore! – BeachRunnerFred

+0

Cela dépend de vos besoins. L'approche présentée par @Andrey est bonne mais vous devez générer le javascript manuellement, y compris les boucles, ifs, ... comme une chaîne et le passer à la vue au lieu d'avoir un langage RJS comme dans un vrai template. Donc, vous pourriez finir par écrire javascript dans votre contrôleur, ce qui est mauvais à mon humble avis. –

1

Il convient également de jeter un oeil à est JsonResult qui étend ActionResult. Je l'utilise habituellement lorsque je fais des requêtes AJAX pour des données quelconques.