Post de una lista de objetos al controlador

Cuando necesitamos hacer un post de una lista de objetos desde la vista a un controlador, .Net nos ayuda haciendo el enlace de modelos (Model Binding) desde nuestra forma html a un lista de objectos.

Sin embargo, del lado de la vista el trabajo no es tan sencillo como lo pudiéramos adivinar. Si bien, la vista recibe una la lista de objectos como modelo, nuestro primer pensamiento es utilizar un ciclo for-each. Pero en este caso, para lograr enviar estos datos de manera que el enlace de modelo lo pueda interpretar correctamente debemos de usar un ciclo for en su lugar. Esto por la forma en que los elemento son nombrados e identificados en la forma html.

Por ejemplo, si queremos mostrar la lista de un modelo persona en una tabla html y posteriormente enviar los valores correspondientes a nuestro controlador, tendriamos un código similar a este:

Con esto permitiremos los datos sean nombrados correctamente en el código html final para posteriormente sean transportados al controlador en el submit de la forma.


Como referencia, aquí el modelo utilizado en el ejemplo:

Adicionalmente, para Asp .Net MVC se pueden utilizar los métodos extendidos usuales de la forma: