Usuário com melhor resposta
Passar para o controle um parâmetro list(of )

Pergunta
-
Boa noite!
Alguém saberia como passar para o controller um parâmetro do tipo list? Vejam minha situação:
Tenho uma View que está herdando uma lista de um modelo. Nessa View estou carregando uma table com todos os itens desse modelo. Na table, cada coluna é um editor for, pois, permito que o usuário altere os dados que foram carregados.Meu problema é para salvar o que foi alterado. Como eu faço para mandar o modelo novamente para o controller para que seja salvo o que foi alterado? Lembrando que minha View é uma lista de um modelo.
Se essa não for a melhor forma de fazer isso, aceito sugestões de outras maneiras também.
Espero que tenha conseguido ser clara.
Daniela
- Editado dani.ela segunda-feira, 5 de maio de 2014 21:08
Respostas
-
Segue um snippet básico:
<%@ Page Inherits="ViewPage<IList<Book>>" %> <% for (int i = 0; i < 3; i++) { %> <%: Html.TextBoxFor(m => m[i].Title) %> <%: Html.TextBoxFor(m => m[i].Author) %> <%: Html.TextBoxFor(m => m[i].DatePublished) %> <% } %>
Nesse post aqui tem a explicação detalhada:
http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/
- Sugerido como Resposta Wennder SantosMVP terça-feira, 6 de maio de 2014 13:26
- Marcado como Resposta dani.ela terça-feira, 6 de maio de 2014 13:31
-
Olá,
só complementado o João. Não use for each para criar sua table na view, pois, se você quiser passar essa lista como parâmetro para o controller não vai funcionar se ela for criada com for each. Não sei porque, mas, o for each não gera o html correto, use o for comum, como mostra o exemplo do João.
Wennder Santos
Se solucionou seu problema ou dúvida, não esqueça de marcar como resposta. Se foi util, não esqueça de marcar como util.
- Marcado como Resposta dani.ela terça-feira, 6 de maio de 2014 13:31
Todas as Respostas
-
Segue um snippet básico:
<%@ Page Inherits="ViewPage<IList<Book>>" %> <% for (int i = 0; i < 3; i++) { %> <%: Html.TextBoxFor(m => m[i].Title) %> <%: Html.TextBoxFor(m => m[i].Author) %> <%: Html.TextBoxFor(m => m[i].DatePublished) %> <% } %>
Nesse post aqui tem a explicação detalhada:
http://haacked.com/archive/2008/10/23/model-binding-to-a-list.aspx/
- Sugerido como Resposta Wennder SantosMVP terça-feira, 6 de maio de 2014 13:26
- Marcado como Resposta dani.ela terça-feira, 6 de maio de 2014 13:31
-
Olá,
só complementado o João. Não use for each para criar sua table na view, pois, se você quiser passar essa lista como parâmetro para o controller não vai funcionar se ela for criada com for each. Não sei porque, mas, o for each não gera o html correto, use o for comum, como mostra o exemplo do João.
Wennder Santos
Se solucionou seu problema ou dúvida, não esqueça de marcar como resposta. Se foi util, não esqueça de marcar como util.
- Marcado como Resposta dani.ela terça-feira, 6 de maio de 2014 13:31
-
-
Obrigado Wennder Santos!
Realmente era isso que eu estava fazendo, segui o exemplo do João e funcionou, mas, eu não sabia o porque não estava funcionando. Agora que você disse que o for each não daria certo eu entendi, eu estava usando o for each mesmo.
Obrigado galera vocês são feras!!