contrôleur d'appel de l'action à partir .cshtml page avec jquery

Je suis en train d'appeler une action de contrôleur de jquery UI dialog.
Ce que j'ai actuellement est: est-ce

.html("<p><textarea name=\"TextMessage\" id=\"textItems\" rows=\"10\" cols=\"72\" /><br /><br /><input type=\"button\" style=\"float:right;\" id=\"submitData\" onclick=\"Test()\" value=\"Submit\" /></p>");

Le script que j'utilise pour appeler le contrôleur d'action est celui-ci:

<script type="text/javascript">
    function Test() {
        $ajax({
            url: '<%= Url.Action("GetData", "Report") %>',
            success: function (data) {
                alert(data);
            }
        });
    };
</script>

Et le contrôleur de l'action est: est-ce

[HttpGet]
        public JsonResult GetData()
        {
            return Json("success", JsonRequestBehavior.AllowGet);
        }

Je voudrais savoir si je fais quelque chose de mal, je suis en train d'essayer d'obtenir que cela fonctionne pour quelques heures maintenant, mais sans succès.
Quand je suis en train directement à démarrer le contrôleur via http://localhost:1322/Report/GetData il fonctionne très bien, cela signifie que le script n'est pas correctement configuré.
Je vous remercie tous de l'aide.
Merci d'avance, Laziale

  • Si vous êtes de retour JSON, vous devez définir le dataType: 'json' propriété. Vous devez également inclure et "error: function(..." dans votre appel ajax.
  • Il semble qu'il vous manque le crochet de fermeture sur le Test fonction, mais c'est peut être juste une faute de frappe.
  • J'ai mis à jour la fonction de test, voir si c'est ok, ne pas faire quelque chose d'aussi bien
  • Est-il possible de me donner un exemple, qui m'aiderait beaucoup. Merci à l'avance
  • Quand vous dites que vous êtes en mesure de "démarrer le contrôleur directement," voulez-vous dire en accédant à l'URL (dans un navigateur), ou voulez-vous dire qu'il fonctionne si vous définissez cette URL comme la url paramètre de l'appel AJAX? Avec votre montage, vous avez maintenant un point-virgule de fin après le crochet fermant sur Test, par la manière.
  • en accédant à l'URL dans un navigateur. Mis à jour le script maintenant, même résultat
  • Il semble qu'il peut en effet être un problème avec votre boîte de dialogue, et non pas le script lui-même. Si vous définissez un point d'arrêt à la Test fonction dans un débogueur JavaScript est-il touché? Avez-vous des erreurs de JavaScript? Pouvez-vous expliquer la boîte de dialogue code?
  • Vérifiez votre console javascript ou d'installer Firebug et de débogage du javascript. Vous verrez ce qui se passe
  • Une erreur que je vois dans votre exemple, c'est que vous êtes absent de la . dans $.ajax. Vous devez obtenir de l'erreur $ajax is not defined.

InformationsquelleAutor Laziale | 2012-02-17