2010-10-15 5 views
0

J'ai une vue partielle avec un formulaire dedans. Il est fortement typé. J'utilise ajax dans une vue avec la vue partielle pour soumettre le formulaire.ASP.NET MVC 2 Ajax formulaire soumettre, erreur: renvoie l'erreur sans informations?

C'est fondamentalement une forme qui crée un nouvel article de DB et je peux voir que l'action de contrôleur fonctionne et est appelée.

mes ajax soumettre ressemble à ceci:

$(document).ready(function() { 
    var form = $("#addPost"); 
    form.submit(function() { 
     $.ajax({ 
     type: "POST", 
     url: form.attr("action"), 
     data: form.serialize(), 
     dataType: "json", 
     success: function (data) { 
      alert('success!'); 
     }, 
     error: function (req, status, err) { 
      alert('err=' + err + ' status=' + status); 
     } 
    }); 
    return false; 
    }); 
}); 

Ainsi, le contrôleur effectuer le travail très bien et tente de retourner le type fort que le PartialView est .. et je continue à obtenir l'alerte de l'erreur sans information dedans. Est-ce parce que ma vue parente n'est pas typée de la même façon et que c'est la vue qui a envoyé l'ajax?

si c'est le cas, quelle est la solution? Est-ce que je vais à propos de ce problème? J'ai besoin de la page parent pour obtenir la réponse, puis afficher les informations de formulaire sur la page en utilisant js. Merci!

+0

Pouvez-vous envoyer votre code d'action du contrôleur? Le $ .ajax attend un objet JSON à retourner. Est-ce le bon type de retour? – Clicktricity

Répondre

0

Vous devez afficher plus de détails. Par exemple, le code dans le contrôleur. Aussi, avez-vous essayé de déboguer ceci pour voir ce qui est retourné? Cependant, le moyen infaillible de déboguer ce type d'échec ajax silent est d'utiliser Firefox et son add-in, Firebug. Il affichera les erreurs et vous montrera la réponse à chaque appel au serveur. Si votre contrôleur renvoie une erreur, le serveur enverra une page d'erreur complète et vous pouvez voir cela dans Firebug.

Le fait qu'ajax silences l'appel est une question différente. Par contre, il peut y avoir une faute de frappe dans votre code jQuery. Par contre, il peut y avoir une faute de frappe dans le code jQuery. Voir:

Error in jquery code casusing problems...