Vista parcial de ASP.NET MVC con formulario
-
06-07-2019 - |
Pregunta
Tengo un escenario en el que quiero usar una vista parcial, pero tengo problemas para pasar datos al controlador. Aquí hay un ejemplo básico de lo que estoy tratando de hacer.
Objetos:
- Cliente
- Orden
Un cliente tiene un IList<Order>
en él. Quiero que la vista parcial permita al usuario editar la información. Puedo obtener los datos para mostrar, pero cuando el formulario publica la lista debajo del objeto Cliente es nula.
También he intentado usar un formulario separado en mi vista parcial. Cuando hago esto si creo parámetros en el controlador, así obtengo los datos:
public ActionResult UpdateOrders(IList<Guid> id, IList<int> quantity, IList<Guid> productId)
Pero cuando hago esto
public ActionResult UpdateOrders(IList<Order> orders)
La lista es nula.
Si alguien tiene una mejor sugerencia de cómo lograr esto, avíseme.
Solución
¿Cómo hace referencia a los campos en su vista? Estoy pensando que debería ser algo como:
<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" />
Vea la entrada de blog de Phil Haack en enlace a una lista para más información.