2011-03-07 6 views
5

Hola chicos, siguiendo la publicación THIS y las otras publicaciones a las que enlaza, he creado con éxito una página con una lista editable legnth variable.asp.net mvc 3 lista editable de longitud variable

Ahora, tengo que hacer otra página con funcionalidad similar, pero voy un paso más allá. Básicamente, necesito crear una lista de objetos de longitud variable como ya lo hice, pero en este caso cada objeto en la lista necesita tener su propia sub-lista editable de longitud variable.

Puedo construir la vista sin problema, pero creo que estoy perdido en cuanto a cómo manejaré esto en mi método de control POST para guardar los objetos.

¿Mi controlador tomará 2 parámetros IEnumerable? I.E.

public ActionResult SaveList(IEnumerable<MainList>, IEnumerable<Sublist>) 
{ 

} 

Parece que esto funcionaría, pero no tengo manera de associatiing los objetos de la colección lista secundaria con el objeto apropiado en la colección lista principal.

¿Qué me estoy perdiendo?

+0

Si entiendo correctamente la pregunta, sus sublistas deberían ser miembros de sus elementos 'MainList'. En su opinión, tendrá un bucle 'foreach' anidado para trabajar con los elementos 'Sublist'. En el controlador solo acepta el 'MainList' como parámetro (ya debería tener las sublistas como miembros). ¿Has probado este enfoque? ¿Hay algo que no funciona? – Yakimych

+0

Necesito darle ese enfoque otra vez, lo había intentado en el pasado sin éxito, pero puede haberme perdido algo. Tienes razón, las sublistas son miembros de los objetos de la lista principal. Si puedo hacer que esto funcione, sería bastante simple – stephen776

+0

@Yakimych, desafortunadamente este método no funciona para mí ... la colección de Sublistas está vacía – stephen776

Respuesta

2

Resumiendo los resultados de nuestros comment-discusiones como una respuesta:

Las sublistas deben ser miembros de sus MainList elementos. En la Vista, tendrá un bucle foreach anidado para trabajar con los elementos Sublist. En el controlador solo acepta el MainList como parámetro (ya debería tener las sublistas como miembros). Para que el ModelBinder recoja las sublistas correctamente, los nombres de las entradas deben incluir primero los nombres de la lista principal (y no solo las propiedades dentro del elemento de la sublista).

1

Creo que necesita construir una clase ModelBinder para aceptar estos parámetros de la forma que desee en su objeto controlador.

+0

Tendré que investigar esto un poco más – stephen776