Ceci est une question de suivi à celui que j'ai posté la semaine dernière "Ajax.ActionLink not Posting". Je l'ai finalement envoyé à Post, et il appelle correctement mon action Supprimer et supprime l'enregistrement. La méthode Delete renvoie une RedirectToAction ("List") de sorte que le nouvel ensemble de données moins l'enregistrement supprimé soit ré-listé. Sauf que ce qui se passe réellement est - RIEN. La liste ne change pas. Et je suis assez sûr de savoir pourquoi: appeler Ajax.ActionLink renvoie un résultat Ajax qui n'est supposé remplacer qu'un élément désigné (le paramètre d'option UpdateTargetId) dans le document. Et puisque je n'en ai pas désigné, il ne remplace rien, même si c'est une toute nouvelle page. Ma question est, qu'est-ce que je passe à l'AjaxOption.UpdateTargetId pour l'obtenir pour effacer la page entière et recharger avec le nouveau résultat, comme si Html.ActionLink avait été appelé (rappelant que la seule raison pour utiliser Ajax .ActionLink était que je voulais que la méthode soit invoquée avec un POST au lieu d'un GET)? (Et puisque cette page utilise une page principale, je n'ai pas la possibilité de mettre simplement un ID sur l'élément body.)Obtenir Ajax retour pour remplacer la page entière
Répondre
Vous pouvez faire un POST sans Ajax. Vous devez utiliser un formulaire et modifier votre ActionLink en un bouton Envoyer. Ce pourrait être le moyen le plus simple.
Sinon, vous devez modifier votre action Liste pour retourner une vue partielle. C'est ce qui rend à votre UpdateTargetId, que vous pouvez simplement définir comme un div externe sur votre page.
Avez-vous vraiment besoin de recharger votre liste? Vous pouvez faire votre Ajax POST pour supprimer la ligne dans la base de données et utiliser la propriété OnSuccess de AjaxOptions pour appeler une fonction JavaScript qui supprime ensuite la ligne du HTML sur la page.
Eh bien, vous faites probablement un bon point. Je sais comment POST en utilisant
Pour fermer la boucle, j'ai suivi votre conseil: j'ai créé une vue partielle ListPartial à partir de la partie grille de ma vue Liste, et l'ai appelée depuis la vue Liste, en l'enfermant dans une div. Ensuite, j'ai fait en sorte que l'action Supprimer construisait toutes les données pour une vue Liste, et que ma vue Supprimer ne contienne rien de plus qu'un RenderPartial de ListPartial. Maintenant, dans mon Ajax.ActionLink, je peux utiliser l'ID de la div qui contient le partial comme UpdateTargetID, et quand le Delete se termine, sa sortie (le remplace). Merci pour votre aide. –
- 1. Jquery AJAX avec ASP.NET WebMethod Retour de la page entière
- 2. jQuery Ajax renvoie la page entière
- 3. Comment sélectionner et remplacer la page entière avec jQuery
- 4. Regex.Replace() pour remplacer l'occurrence entière
- 5. Ajax callback UpdatePanel.Update() toujours recharger la page entière
- 6. Comment remplacer une page entière dans jQTouch avec un autre
- 7. Sélectionnez DISTINCT, retour ligne entière
- 8. Récupérer et charger une page entière avec AJAX
- 9. Remplacer la page HTML avec le contenu récupéré via AJAX
- 10. Reconstruire la page entière sur le rappel?
- 11. Obtenir des données de la base de données sans actualiser la page entière
- 12. jquery, ajax et obtenir une structure html complète retour
- 13. ajax à php pour boucler et retour
- 14. Ajax valeur post retour
- 15. Remplacer une ligne entière dans un fichier
- 16. Envoi Retour Ajax variable
- 17. Remplacer l'index Retour dans la collection C#
- 18. Ajax retour problème précédent
- 19. Obtenir la sortie entière de sous-processus.Popen
- 20. Appel ASP.NET PageMethod/WebMethod avec jQuery - retourne la page entière
- 21. obtenir des données json retour de l'appel ajax
- 22. trouver des lignes contenant "^" et remplacer la ligne entière par ""
- 23. Retour chaîne extérieur Ajax Demande
- 24. Est-il possible d'actualiser la page entière après un appel ajax?
- 25. updatepanel charge la page entière à l'intérieur d'un iframe
- 26. Jquery fragment page de retour de hachage ajax
- 27. Les données actuelles proviennent de tcp sur la page Web sans actualiser la page entière?
- 28. Drupal - Remplacer la page d'accueil
- 29. Retour à la page précédente
- 30. comment obtenir une valeur de retour de ajax et php
Je ne comprends pas pourquoi vous voulez utiliser Ajax si vous rechargez effectivement toute la page de toute façon? Vous pouvez faire un POST sans Ajax. – fearofawhackplanet
Pouvez-vous me diriger vers un lien? J'ai passé environ une journée à essayer de comprendre comment je suis arrivé à cette "solution" Ajax.ActionLink. –
Comme le dit fearofawhackplanet, Ajax est spécifiquement pour * les mises à jour partielles de page *. Si vous voulez seulement des mises à jour entières, vous n'avez pas besoin d'ajax. –