Comment rendre la vue partielle à l'aide de jquery?
Nous pouvons rendre la vue partielle comme ceci:
<% Html.RenderPartial("UserDetails"); %>
Comment pouvons-nous faire de même en utilisant jquery?
Comment rendre la vue partielle à l'aide de jquery?
Nous pouvons rendre la vue partielle comme ceci:
<% Html.RenderPartial("UserDetails"); %>
Comment pouvons-nous faire de même en utilisant jquery?
Réponses:
Vous ne pouvez pas rendre une vue partielle en utilisant uniquement jQuery. Vous pouvez cependant appeler une méthode (action) qui rendra la vue partielle pour vous et l'ajoutera à la page à l'aide de jQuery / AJAX. Dans ce qui suit, nous avons un gestionnaire de clic de bouton qui charge l'URL de l'action à partir d'un attribut de données sur le bouton et déclenche une demande GET pour remplacer le DIV contenu dans la vue partielle par le contenu mis à jour.
où le contrôleur utilisateur a une action nommée détails qui:
Cela suppose que votre vue partielle est un conteneur avec l'id de
detailsDiv
sorte que vous remplacez simplement le tout par le contenu du résultat de l'appel.Bouton Affichage parent
User
est le nom du contrôleur et ledetails
nom de l'action dans@Url.Action()
. Vue partielle UserDetailsla source
J'ai utilisé ajax load pour ce faire:
la source
UserDetails
est le nom d'une action, pas une vue partielle, non?@Url.Action("ActionName","ControllerName", new { area = "AreaName" } )
place le codage manuel .@tvanfosson bascule avec sa réponse.
Cependant, je suggérerais une amélioration au sein de js et une petite vérification du contrôleur.
Lorsque nous utilisons
@Url
helper pour appeler une action, nous allons recevoir un code HTML formaté. Il serait préférable de mettre à jour le contenu (.html
) et non l'élément réel (.replaceWith
).En savoir plus sur: Quelle est la différence entre replaceWith () de jQuery et html ()?
Ceci est particulièrement utile dans les arbres, où le contenu peut être modifié plusieurs fois.
Au niveau du contrôleur, nous pouvons réutiliser l'action en fonction du demandeur:
la source
Une autre chose que vous pouvez essayer (basée sur la réponse de tvanfosson) est la suivante:
Et puis dans la section scripts de votre page:
Cela rend votre @ Html.RenderAction en utilisant ajax.
Et pour faire tout sjmansy fansy, vous pouvez ajouter un effet de fondu en utilisant ce css:
Homme j'aime mvc :-)
la source
<div class="renderaction fade-in" ...></div>
éléments.Vous devrez créer une action sur votre contrôleur qui renvoie le résultat rendu de la vue ou du contrôle partiel "UserDetails". Ensuite, utilisez simplement un Http Get ou Post de jQuery pour appeler l'action pour que le code HTML rendu soit affiché.
la source
Utilisation d'un appel Ajax standard pour obtenir le même résultat
la source
Je l'ai fait comme ça.
Détails méthode:
la source
Si vous devez référencer une valeur générée dynamiquement, vous pouvez également ajouter des paramètres de chaîne de requête après @ URL.
la source