Maison > développement back-end > C++ > Comment publier avec succès un tableau de formulaire avec ASP.NET MVC et JQuery?

Comment publier avec succès un tableau de formulaire avec ASP.NET MVC et JQuery?

Mary-Kate Olsen
Libérer: 2025-02-02 04:16:10
original
839 Les gens l'ont consulté

How to Successfully POST a Form Array with ASP.NET MVC and jQuery?

Dépannage ASP.NET MVC Form Form Wabred Soumission avec jQuery

Cet article résout un problème commun: soumettre un tableau de formulaire à l'aide d'ASP.NET MVC et JQuery, ce qui entraîne une exception de référence nul lors de la tentative d'accéder aux données de tableau dans le contrôleur. Le problème se pose généralement lorsque les éléments du tableau du formulaire ne sont pas correctement indexés pour la liaison du modèle correct.

Le scénario implique l'envoi d'un IEnumerable<BatchProductViewModel> au serveur. La solution nécessite de générer des contrôles de formulaire dans une boucle, garantissant que chaque élément est correctement nommé à l'aide d'indexers. De plus, la propriété du modèle côté serveur (BatchProducts) devrait être un IList<BatchProductViewModel> pour s'adapter aux tailles de tableau dynamique.

Voici un exemple de code corrigé démontrant une bonne manipulation du tableau:

<code class="language-csharp">@using (Html.BeginForm("Save", "ConnectBatchProduct", FormMethod.Post))
{
  // ... other form elements ...

  // Correctly indexed form elements for the array
  //  This loop ensures each element in the array has a unique index
  //  The indexer is crucial for proper model binding
  for (int i = 0; i < Model.BatchProducts.Count; i++)
  {
    @Html.HiddenFor(model => model.BatchProducts[i].ProductId) // Example property
    @Html.TextBoxFor(model => model.BatchProducts[i].ProductName) // Example property
    // ... other properties for BatchProductViewModel ...
  }

  // ... rest of the form ...

  <input type="submit" value="Save" />
}</code>
Copier après la connexion

Avec ces ajustements, la méthode d'action Save dans le contrôleur ConnectBatchProduct recevra correctement un objet ConnectBatchProductViewModel peuplé, y compris sa liste BatchProducts.

Gestion dynamique du tableau (ajouter / supprimer)

Pour l'addition dynamique et l'élimination des éléments BatchProductViewModel à l'aide de jQuery, envisagez d'utiliser l'assistance BeginCollectionItem ou de fabriquer un modèle HTML personnalisé pour gérer efficacement les éléments de tableau. (De plus amples détails sur ces techniques peuvent être trouvés dans [les ressources / liens en ligne pertinents - Remplacer les informations entre crochets par des liens réels si disponibles ].)

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