Vue partielle ASP.NET MVC avec formulaire
-
06-07-2019 - |
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.
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.