none
Como enviar mais de um Coleção para a View? RRS feed

  • 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
    terça-feira, 7 de junho de 2011 19:41

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
    quarta-feira, 8 de junho de 2011 15:02
  • 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/
    quinta-feira, 9 de junho de 2011 11:39

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
    quarta-feira, 8 de junho de 2011 15:02
  • 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/
    quinta-feira, 9 de junho de 2011 11:39