Question

J'ai un scénario pour lequel je souhaite utiliser une vue partielle, mais je ne parviens pas à transmettre des données au contrôleur. Voici un exemple de base de ce que j'essaie de faire.

Objets:

  • client
  • Commande

Un client a un IList<Order> dessus. Je veux que la vue partielle permette à l'utilisateur de modifier les informations. Je peux obtenir les données à afficher, mais lorsque le formulaire affiche la liste sous l'objet Client, la valeur est null.

J'ai également essayé d'utiliser un formulaire séparé dans ma vue partielle. Lorsque je fais cela, si je crée des paramètres sur le contrôleur, comme cela, je récupère les données:

public ActionResult UpdateOrders(IList<Guid> id, IList<int> quantity, IList<Guid> productId)

Mais quand je le fais

public ActionResult UpdateOrders(IList<Order> orders)

La liste est nulle.

Si quelqu'un a une meilleure suggestion pour y parvenir, faites-le-moi savoir.

Était-ce utile?

La solution

Comment faites-vous référence aux champs dans votre vue? Je pense que cela devrait être quelque chose comme:

<input type="hidden" name="orders.Index" value="0" />
<input type="hidden" name="oders[0].ID" value="1" />
<input type="hidden" name="orders[0].productId" value="4" />
<input type="text" name="orders[0].quantity" value="6" />

<input type="hidden" name="orders.Index" value="1" />
<input type="hidden" name="orders[1].ID" value="2" />
<input type="hidden" name="orders[1].productId" value="2" />
<input type="text" name="orders[1].quantity" value="15" />

Voir l'entrée du blog de Phil Haack à l'adresse obligatoire. à une liste pour plus d'informations.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top