J'ai un site où la page de chaque utilisateur affiche des commentaires et permet à d'autres utilisateurs d'ajouter des commentaires. Je veux l'avoir si le formulaire ajouter des commentaires est sur la page et quand un utilisateur ajoute un commentaire, il est ajouté à la base de données et apparaît dans la section des commentaires avec AJAX. J'utilise jQuery pour AJAX et LINQ to SQL pour gérer la logique de base de données. Comment s'y prendre pour que, après l'ajout du commentaire à la base de données, la section des commentaires soit rafraîchie et mise à jour sans actualiser la page?ASP.NET MVC AJAX avec jQuery
Répondre
Vous auriez besoin de tirer parti de l'événement 'success' (ou 'complete') lancé par l'appel ajax jQuery pour déclencher un appel AJAX suivant pour rafraîchir le contenu de vos avis. Cela ressemblerait probablement quelque chose comme (ailé il, non testé):
function UpdateComments(){
resultHTML = jQuery.ajax({
type: 'GET',
url: 'Comments/List/UserID'
}).responseText;
$('#comments').html(resultHTML);
}
function PostComment(targetUserID, commenterUserID, comment)
jQuery.ajax({
type: 'POST',
contentType: 'application/json; charset=utf-8',
data: $.toJSON({review: comment, id:targetUserID, commenter:commenterUserID}),
dataType: 'json',
url: 'Comments/Add',
success: function(result){
// Only update comments if the post was successful:
resultJson = $.evalJSON(result);
if(resultJson['success'] == true){
UpdateComments();
}
}
});
EDIT Le code JSON serait d'utiliser le plugin jquery jquery-json (http://code.google.com/p/jquery-json/)
En réponse à Matt, une autre façon pour soumettre les données du formulaire, vous pouvez, à la place du JSON, appeler $ ('# form'). serialize() dans le champ 'data' de la fonction jQuery.ajax. Cela éliminerait le besoin d'un plugin.
Aussi, je ne suis pas un expert sur ce sujet, essayant toujours de l'apprendre moi-même, mais est-il nécessaire d'avoir une requête POST et GET quand vous pouvez insérer la réponse d'ASP.NET MVC dans la page ? Cela entraînerait une demande. Il y a peut-être une raison valable à cette approche. Je suppose que le mien ressemblerait à ceci:
// The Controller Action should return a PartialView as response,
// so just a user control that contains the comments.
function PostComment(targetUserID, commenterUserID, comment)
jQuery.ajax({
type: 'POST',
data: $('#commentForm').serialize(),
url: 'Comments/Add',
success: function(result){
$('#comments').html(result);
}
}
});
Salut Julian - c'est un très bon point RE: combiner les nouveaux résultats de commentaire dans la réponse POST. Je suppose que cela se résume à quel point vous êtes puriste crud RESTful. Personnellement, je combinerais cela dans la réponse, pour sauver l'aller-retour, même si certains puristes pourraient en dire autrement. – Matt
- 1. ASP.net MVC avec Ajax
- 2. ASP.NET MVC + jQuery + IIS6: plusieurs requêtes Ajax
- 3. ASP.Net MVC Soumettre formulaire Ajax via JQuery
- 4. ASP.NET MVC et jQuery - Problème ajax encodage
- 5. JQuery ajax parsererror dans l'application ASP.NET MVC
- 6. Poster avec jQuery AJAX pour ASP.NET MVC 1.0
- 7. ASP.NET - requêtes Ajax avec jQuery
- 8. Exemple AJAX de base avec ASP.NET MVC?
- 9. Table paginée avec ASP.NET MVC et AJAX
- 10. aide avec jquery dans asp.net mvc
- 11. Envoi AjaxForm avec jQuery dans ASP.NET MVC
- 12. ASP.NET MVC Ajax
- 13. Problème avec Ajax Cliquez sur Asp.Net MVC
- 14. TinyMCE avec formulaire Ajax dans ASP.NET MVC
- 15. pagination avec ajax et asp.net mvc
- 16. Utilisation de JQuery avec ASP.NET MVC Framework
- 17. ASP.NET MVC AJAX Calendrier
- 18. Comment utiliser Pop-Ups modale avec ASP.Net MVC et AJAX?
- 19. Comment utiliser jquery avec asp.net ajax
- 20. ASP.NET MVC RC ajax onsubmit
- 21. ASP.NET MVC/jQuery: Inplace Editing
- 22. ASP.NET MVC jQuery AJAX Appelle Action Méthode trop tard?
- 23. Formulaires Ajax dans ASP.NET MVC
- 24. ASP.Net MVC, AJAX et amélioration progressive
- 25. Ajax dans ASP.NET MVC Framework
- 26. ASP.NET MVC Ajax Form LoadingElementId
- 27. Retour Json à jQuery avec ASP.NET MVC
- 28. jquery avec boîte de dialogue mvc asp.net
- 29. ajax avec l'aide MVC
- 30. ASP.NET 2.0 JQuery AJAX Connexion
l'URL doit être: «/Commentaires/Ajouter » ... sinon l'URL s'ajouté à l'URL actuelle et vous aurez fort probablement un 404. –
En fait, il est probablement préférable d'utiliser l'un des assistants MVC pour générer le chemin, parce que le premier/lancera également des choses si votre site fonctionne comme une application imbriquée sous un autre site Web dans IIS – Matt