J'utilise mvc c # avec jQuery.
J'ai une vue partielle dans une page assez grande qui a un nombre d'onglets.
En cliquant sur une case à cocher, j'aime mettre à jour la vue partielle dans le formulaire. Ce que je reçois à la place est juste la vue partielle
Voici mon code à JQuery:
$('#activelist,#inactivelist').change(function () {
var status = 'inactive';
window.location.href = '@Url.Action("Skits","KitSection")' + '?id=' + id+ '&status=' + status;
});
Avez-vous une idée de la manière dont je pourrais mettre à jour la vision partielle dans un formulaire en termes de comment je vais appeler un appel?
Voici le code pour le partielview
return PartialView(Kits);
Comme mentionné, ce que je vois est juste la vue partielle affichée et non la forme entière.
window.location.href
Rechargera la page entière. Vous devez recharger une partie de votre page sans rechargement complet. Nous pouvons utiliser JQuery Ajax pour le faire. Découvrons ce que le sélecteur JQuery vous pouvez utiliser pour obtenir le partialview.
Par exemple, supposez que votre marquage HTML est comme celui-ci dans la forme principale (vue)
<div>
<p>Some content</p>
<div id="myPartialViewContainer">
@Html.Partial("_FeaturedProduct")
</div>
<div>Some other content</div>
</div>
Et ici la DIV
avec ID
_ _ myPartialViewContainer
est le conteneur div, qui contient le contenu de la partial view
. Nous allons donc simplement recharger le contenu de cette div en utilisant jQuery charge méthode
$(function(){
$('#activelist,#inactivelist').change(function () {
var id="someval";
var status = 'inactive';
$("#myPartialViewContainer").load('@Url.Action("Skits","KitSection")' + '?id=' + id+ '&status=' + status)
});
});
Vous redirigez l'utilisateur, via la propriété Window.Location.href, à l'URL de votre partielle, ce n'est donc que l'affichant que partiel.
Vous devriez plutôt faire un AJAX Appelez-vous au partiel pour la récupérer, puis utilisez quelque chose comme la méthode .append pour l'ajouter à l'élément de conteneur que vous souhaitez ajouter.
Modifier: La méthode .Load () JQuery Ajax est en fait meilleur pour cette situation spécifique.