Maison > interface Web > js tutoriel > Comment réussir à transmettre une collection à une vue partielle et gérer la soumission de données dans ASP.NET MVC ?

Comment réussir à transmettre une collection à une vue partielle et gérer la soumission de données dans ASP.NET MVC ?

Mary-Kate Olsen
Libérer: 2024-12-20 00:39:16
original
915 Les gens l'ont consulté

How to Successfully Pass a Collection to a Partial View and Handle Data Submission in ASP.NET MVC?

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 :

  1. Création d'un ViewModel (CashRecipientVM) :

    • Une classe CashRecipientVM a été créée pour représenter les données à modifier et incluait des attributs de validation.
  2. Vue partielle (_Recipient.cshtml) :

    • A La vue partielle "_Recipient.cshtml" a été créée pour afficher une seule instance de CashRecipientVM.
    • L'assistant BeginCollectionItem a été utilisé pour lier les propriétés et permettre l'ajout de plusieurs destinataires.
  3. Méthode Destinataire() (en Contrôleur) :

    • Une méthode Recipient() a été ajoutée au contrôleur pour renvoyer un Partial ViewResult pour un nouveau CashRecipientVM.
  4. Méthode GET principale (Create) :

    • Le Create() GET La méthode a été mise à jour pour renvoyer une liste vide d'instances CashRecipientVM.
  5. Vue principale :

    • La vue principale a été mise à jour d'utiliser la vue partielle "_Recipient.cshtml" pour afficher les destinataires existants et permettre l'ajout de nouveaux ceux.
  6. Javascript :

    • Des fonctions Javascript ont été ajoutées pour gérer l'ajout de nouveaux destinataires et la suppression de ceux existants.
    • jQuery et une validation discrète côté client ont été utilisés pour améliorer expérience.
  7. Mettre à jour l'action POST du formulaire (Créer) :

    • L'action POST du formulaire a été mise à jour pour cibler Action Create(), qui attend désormais une collection de CashRecipientVM objets.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal