Usuário com melhor resposta
Como enviar mais de um Coleção para a View?

Pergunta
-
Tenho um pagina que precisso enviar mais de uma colecao ex: enviar um coleção de clientes e um outra de fornecedor e jogar numa tabela com uma coleção fiz assim no controler :
public ActionResult SelEncomenda() { List<tb_Encomendas> lista = contexto.tb_Encomendas.ToList(); return View(lista); }
e assim na view
@model IList<MgsMaterials.Entity.tb_Encomendas> <table cellpadding="0" cellspacing="0" border="0" class="tablePaginator display" id="tableSelEncomenda"> <thead> <tr> <th class="selID"> Selecionar </th> <th> Sigla </th> <th class="oculta"> Descricao </th> </tr> </thead> <tbody> @foreach (var item in Model) { <tr id="@item.EncomendaID" class="gradeA" action="/Encomenda/Sel"> <td class="selID">@item.EncomendaID</td><td> @item.SiglaEncomenda </td> <td class="oculta">@item.Descricao</td> </tr> } </tbody> </table>
agora precisso enviar duas ou mais colecao, como que faço?
alexandre.Rocha
Respostas
-
Para enviar varias listas para sua View vc pode Usar ViewModel
Alguns exemplos q pode ajudar
1 http://stephenwalther.com/blog/archive/2009/04/13/asp.net-mvc-tip-50-ndash-create-view-models.aspx
2 http://geekswithblogs.net/michelotti/archive/2009/10/25/asp.net-mvc-view-model-patterns.aspx
- Sugerido como Resposta BernardoM quarta-feira, 8 de junho de 2011 15:02
- Marcado como Resposta Eder CostaModerator terça-feira, 27 de dezembro de 2011 13:15
-
Primeiro você cria um ViewModel:
public class ListasViewModel { public List<Produto> Produtos{ get; set; } public List<Categoria> Categorias{ get; set; } public List<Fornecedor> Fornecedores{ get; set; } }
Aí, no Controller você cria um objeto ListasViewModel e atribui os valores:
public ActionResult Listar() { var model = new ListasViewModel(); model.Produtos = contexto.TodosProdutos(); model.Categorias = contexto.TodasCategorias(); model.Fornecedor = contexto.TodosFornecedores(); return View(model); }
e por último, sua view deve ser tipada para o ViewModel que você criou. Eu, particularmente, prefiro criar um ViewModel para cada View.
Abraço
João Paulo Gomes http://johnowl.com/- Sugerido como Resposta João Paulo Gomes segunda-feira, 27 de junho de 2011 19:03
- Marcado como Resposta Eder CostaModerator terça-feira, 27 de dezembro de 2011 13:15
Todas as Respostas
-
Para enviar varias listas para sua View vc pode Usar ViewModel
Alguns exemplos q pode ajudar
1 http://stephenwalther.com/blog/archive/2009/04/13/asp.net-mvc-tip-50-ndash-create-view-models.aspx
2 http://geekswithblogs.net/michelotti/archive/2009/10/25/asp.net-mvc-view-model-patterns.aspx
- Sugerido como Resposta BernardoM quarta-feira, 8 de junho de 2011 15:02
- Marcado como Resposta Eder CostaModerator terça-feira, 27 de dezembro de 2011 13:15
-
Primeiro você cria um ViewModel:
public class ListasViewModel { public List<Produto> Produtos{ get; set; } public List<Categoria> Categorias{ get; set; } public List<Fornecedor> Fornecedores{ get; set; } }
Aí, no Controller você cria um objeto ListasViewModel e atribui os valores:
public ActionResult Listar() { var model = new ListasViewModel(); model.Produtos = contexto.TodosProdutos(); model.Categorias = contexto.TodasCategorias(); model.Fornecedor = contexto.TodosFornecedores(); return View(model); }
e por último, sua view deve ser tipada para o ViewModel que você criou. Eu, particularmente, prefiro criar um ViewModel para cada View.
Abraço
João Paulo Gomes http://johnowl.com/- Sugerido como Resposta João Paulo Gomes segunda-feira, 27 de junho de 2011 19:03
- Marcado como Resposta Eder CostaModerator terça-feira, 27 de dezembro de 2011 13:15