Une vue partielle passant une collection à l'aide de l'assistant Html.BeginCollectionItem
Cette question explore la question du passage d'une collection d'objets à une vue partielle Afficher et soumettre avec succès les données au contrôleur. Malgré une implémentation apparemment correcte, la méthode AddRecord() échouait et l'assistant BeginCollectionItem ne générait pas la balise cachée nécessaire pour les champs nouvellement ajoutés.
Analyse du problème
La cause première du problème réside dans l’inadéquation entre le type d’objet attendu par le contrôleur et les données envoyées. Dans le code fourni, le modèle d'affichage a été remplacé par CashRecipientVM, mais l'action du contrôleur attendait toujours un modèle de type CashRecipient.
Solution
Pour résoudre ce problème, les étapes suivantes ont été suivies :
Création d'un ViewModel (CashRecipientVM) :
Vue partielle (_Recipient.cshtml) :
Méthode Destinataire() (en Contrôleur) :
Méthode GET principale (Create) :
Vue principale :
Javascript :
Mettre à jour l'action POST du formulaire (Créer) :
En implémentant ces modifications, l'application lie désormais avec succès les données CashRecipientVM, permet l'ajout et la suppression dynamiques de destinataires et soumet correctement les données au contrôleur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!