2010-02-21 3 views
1

Je viens de commencer la construction d'une petite application de test pour m'aider à apprendre MVC. J'ai une vue qui affiche les commentaires des utilisateurs. Sous chaque commentaire je voudrais avoir un lien d'action de réponse. En cliquant sur le lien, vous devez renvoyer un petit formulaire pour ajouter un commentaire directement au-dessus du lien de réponse.Comment puis-je retourner un formulaire en utilisant ajax dans une vue ASP.Net MVC

Quelle est l'approche générale pour cela? J'imagine le formulaire serait une vue partielle que je peux en quelque sorte retourner en utilisant le lien de réponse. Merci pour toute aide!

Répondre

0

En utilisant jQuery to retrieve et post the forms dans les vues partielles est comment je le ferais.

Il suffit de retourner une vue partielle à charger par la charge jQuery:

$('#comment').load('/MyController/ActionReturnsPartial'); 
+0

Salut Maxwell, je pense que c'est ce que je cherche .. donc mon lien de réponse appellerait fondamentalement un script qui passe le commentId et exécute le js ci-dessus ?? – user274901

+0

oui. câbler vos liens de réponse cliquez sur l'événement pour exécuter le script de chargement ci-dessus. – ziya

+0

ok merci! à quoi ressemble l'action qui renvoie une vue partielle? – user274901

0

Vous ne devriez pas avoir à récupérer quoi que ce soit à partir du serveur si l'utilisateur ne fournit pas d'informations supplémentaires ainsi que la récupération. Au lieu de récupérer le formulaire lorsque l'utilisateur clique, laissez la page afficher un formulaire en dessous de chaque commentaire au lieu de récupérer le formulaire. Mettez le formulaire dans un div avec style = "display: none;". Ensuite, lorsque l'utilisateur clique sur le lien, utilisez jQuery pour afficher le formulaire. Quelque chose comme

$('.commentlink').click(function(){ 
    $(this).closest('div').find('.formdiv').show(); 
}); 

Vous pouvez également utiliser la méthode .toggle() de jQuery.

+0

mais si vous ajoutez 100 commentaires ou plus, cela augmentera la taille de la page. Je pense que créer une nouvelle forme de côté client mieux que cette solution. – cem

+0

Vous n'auriez besoin que d'un formulaire de réponse, en utilisant jQuery comme Rune suggère que vous pouvez câbler chaque lien jusqu'à ce formulaire unique. Il ne serait pas plus grand dans la taille de la page que toute autre méthode. –

+0

Oui, vous avez raison, une forme unique résoudre ce problème. mais la suggestion de Rune n'est pas une forme unique comme je vois, rendant la nouvelle forme pour chaque commentaire quand le clic répond, juste montrant le formulaire de commentaire ne bouge pas. – cem

Questions connexes