7
votes

Appelez une vue partielle à l'aide de @ URL.action Cliquez sur Utiliser JQuery

Appeler une vue partielle sur @ Url.action. J'affiche les enregistrements à l'aide d'URL.action et souhaitez charger la vue partielle lorsque l'utilisateur clique sur les enregistrements.

Voici mon code sur lequel je veux appeler la vue partielle lorsque l'utilisateur clique dessus. < Pré> xxx

Voici mon div dans lequel je place la vue partielle xxx

voici ma vue partielle que je veux rendre xxx

et voici mon contrôleur xxx

 Entrez la description de l'image ici


2 commentaires

Alors quel est le problème avec votre code ?? Est-ce que c'est charger cette vue partielle comme une vue entière ?? Pouvez-vous s'il vous plaît expliquer les messages de problèmes / erreurs réels?


Si vous souhaitez le faire de manière dynamique de la page Web, vous devrez regarder AJAX. Essentiellement, vous souhaitez que votre méthode Ajax appelle et action sur votre contrôleur qui retournera votre partialview. Vous faites alors quelque chose comme $ (myContainer) .html (partielview) dans l'onduleur ONSUCCESS ou effectué dans votre méthode Ajax.


3 Réponses :


5
votes

Vous pouvez utiliser AJAX pour obtenir les détails de votre liste et rendre la vue partielle sans rafraîchir la page entière

premier package d'installation JQuery.ajax.unobtrive à l'aide de la commande p>

Package d'installation. Ajax.unobtrive strong> p>

et assurez-vous que jquery-xxxx.js et jQuery.unobtrive-ajax.js strong> sont inclus avant la liste p>

modifier Votre code sur lequel je veux appeler la vue partielle lorsque l'utilisateur clique sur elle p> xxx pré>

ou p> xxx pré>

et au Haut de votre avis Ajouter ce code P>

if (Request.IsAjaxRequest())
{
   Layout=null;
}


8 commentaires

Essayez d'appeler $ ('# DétailsPlace'). Afficher (); À la fin de la vue si cela ne fonctionne pas dites-moi


Son travail maintenant, mais un autre problème survient à la première fois lorsque je clique sur l'enregistrement, il affiche simplement un écran de fondu avec un symbole de croix de la pop up, mais lorsque je clique ici la prochaine fois qu'il montre la fenêtre.


Je ne peux pas comprendre pouvez-vous expliquer plus


Pop Up ne fonctionne pas lorsque je clique sur l'enregistrement à la première première fois lorsque la vue partielle est chargée mais en même temps, je clique à nouveau sur cet enregistrement, cela me montre la pop up. wat est le problème réel. Tu m'as me procédé maintenant?


@ Ajax.actionLink ("Détails", "Détails", Nouveau {id = item.teamid}, Nouveau Ajaxoptions {httpmethod = "get", insertionMode = insertionMode.replace, updateTargetid = "dialog_window_id", onComplete = "$ ('# # DétailsPLACE '). Afficher (); "})


Essayez ce code et supprimez le $ ('# DétailsPlace'). Afficher (); de la vue je vous l'avez déjà ajouté


et soyez conscient que cela prend un certain temps pour rendre afin que vous ayez besoin de mettre en œuvre une sorte d'indication de chargement


J'ai ajouté une capture d'écran à la question initiale avez un look.



1
votes

Si vous souhaitez placer partielview dans un div , vous pouvez essayer d'essayer ajax assistant. Tout d'abord, essayez de changer actionResult à partielviewresult . L'une des définitions de AJAX assistant est suit: xxx


0 commentaires

5
votes

Vous auriez besoin d'Ajax pour faire cela. Tout d'abord, ajoutez un bloc de script à votre vue avec ce code:

<a href="#" class="details" data-id="@item.TeamId">Details</a>


7 commentaires

Merci de travailler maintenant mais un autre problème survient à la première fois lorsque je clique sur l'enregistrement, il montre simplement un écran de fondu avec un symbole de croix de la pop up, mais lorsque je clique ici la prochaine fois qu'il montre la pop up.


Pouvez-vous ajouter une capture d'écran du problème?


Je ne suis pas capable d'ajouter une capture d'écran dans les commentaires. Le problème principal est lorsque la page First Packtback Il ne montre plus qu'à un écran de fondu vierge avec le symbole de la croix de pop up, mais après la fermeture qui apparaît à nouveau, je clique sur l'enregistrement de lien HREF que cela fonctionne comme prévu. Vous êtes-vous eu?


Ajoutez-le à votre question initiale, pas les commentaires.


@ Josh je ajoute la capture d'écran dans ma question initiale


S'il vous plaît jeter un oeil, et en fait, je n'ai pas de méthode d'obtenir pour que j'ai utilisé obtenir: "Poste"


Hmm, avez-vous JavaScript que cet effet de fondu quelque part? De plus, je recommanderais de déboguer cette méthode pour voir exactement où il se passe lorsque vous appelez cette méthode avec Ajax. En outre, je n'utiliserais pas de message pour simplement renvoyer certaines données, la poste est généralement utilisée pour envoyer des données à la base de données, telles que Ajouter, mettre à jour ou supprimer un enregistrement. Si vous obtenez simplement des données pour afficher, j'utiliserais un get.