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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top