J'ai un contrôle utilisateur qui rend une liste d'éléments. Chaque ligne contient un identifiant unique dans un champ masqué, un texte et un bouton de suppression. En cliquant sur le bouton de suppression, j'utilise jquery ajax pour appeler la méthode de contrôleur DeleteCA (voir ci-dessous). DeleteCA renvoie une nouvelle liste d'éléments qui remplace l'ancienne liste..net MVC RenderPartial restitue les informations qui ne sont pas dans le modèle
[HttpPost]
public PartialViewResult DeleteCA(CAsViewModel CAs, Guid CAIdToDelete)
{
int indexToRemove = CAs.CAList.IndexOf(CAs.CAList.Single(m => m.Id == CAIdToDelete));
CAs.CAList.RemoveAt(indexToRemove);
return PartialView("EditorTemplates/CAs", CAs);
}
J'ai vérifié que DeleteCA supprimait réellement l'élément correct. La liste modifiée des autorités de certification transmises à PartialView ne contient plus l'élément supprimé.
Quelque chose d'étrange se produit lorsque la vue partielle est rendue. Le nombre d'éléments dans la liste est réduit mais c'est toujours le dernier élément qui est supprimé de la liste. Les éléments rendus ne correspondent pas aux éléments de la liste/modèle envoyés à PartialView.
Dans le fichier usercontrol (ascx) j'utilise à la fois l'expression Model.CAList et lambda m => m.CAList.
Comment usercontrol peut-il rendre des éléments qui ne sont pas dans le modèle envoyé à PartialView?
Thanx Andreas
Ahh! Merci beaucoup Omar! – Andreas