ASP.NET MVC Vista parziale con modulo
-
06-07-2019 - |
Domanda
Ho uno scenario in cui voglio usare una vista parziale ma sto riscontrando problemi con il passaggio dei dati al controller. Ecco un esempio di base di ciò che sto cercando di fare.
oggetti:
- Clienti
- Ordine
Un cliente ha un IList<Order>
su di esso. Voglio che la vista parziale consenta all'utente di modificare le informazioni. Posso ottenere i dati da visualizzare ma quando il modulo registra l'elenco sotto l'oggetto Cliente è nullo.
Ho anche tentato di utilizzare un modulo separato nella mia vista parziale. Quando lo faccio se creo i parametri sul controller in questo modo ottengo i dati:
public ActionResult UpdateOrders(IList<Guid> id, IList<int> quantity, IList<Guid> productId)
Ma quando lo faccio
public ActionResult UpdateOrders(IList<Order> orders)
L'elenco è nullo.
Se qualcuno ha un suggerimento migliore su come raggiungere questo, fammelo sapere.
Soluzione
Come stai facendo riferimento ai campi nella tua vista? Sto pensando che dovrebbe essere qualcosa del tipo:
<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" />
Vedi il post sul blog di Phil Haack su binding a un elenco per ulteriori informazioni.