Utilizando conceito de Mestre-Detalhe

17/03/2017

0

Pessoal,

Estou construindo um sistema de chamados onde este pode ter várias evoluções. o que eu estou querendo fazer é ao clicar num chamado (que já é trazido numa lista) o mesmo abrir seu conteúdo e logo abaixo todas as suas evoluções (inclusive permitindo fazer novas evoluções).

Tenho na Minha Model as seguintes Entidades:
Chamado (onde estão todos os chamados)
Evolucao (onde estão as evoluções dos chamados e seus respectivos id_chamado, id_usuario, id_setor, etc...).

Qual a forma mais prática de trazer numa única view (num modelo MVC) informações dessas duas fontes?

Pesquisei alguma coisa com Json, PartialView mas não consegui chegar a uma solução.

Grato,

Marcelo
Marcelo Almeida

Marcelo Almeida

Responder

Posts

05/04/2017

Joel Rodrigues

Olá, Marcelo. Tudo bem?

Nesse caso, pode ser interessante para você empregar o padrão ViewModel, com o qual você pode criar uma classe composta por Chamado e Evolucao (ou uma lista delas), por exemplo. Ao buscar referências sobre esse padrão, cuidado para não confundir com o ViewModel usado no padrão MVVM.

Abraço.
Responder

30/05/2017

Marcelo Almeida

Fala Joel... Seguindo sua sugestão Eu criei uma estrutura da seguinte maneira:

* * * ESTRUTURA DA VIEWMODEL * * *

   
public class EvolucaoViewModel
    {
        public Chamado ChamadoAtual { get; set; }
        public virtual ICollection<Evolucao> Evolucoes { get; set; }
    }
}


* * * IMPLEMENTAÇÃO NO CONTROLLER * * *

        
public ActionResult DetalharChamado(int? id)
        {
            EvolucaoViewModel model = new EvolucaoViewModel();

            model.ChamadoAtual = _contexto.Chamados.Find(id);
            model.Evolucoes = _contexto.Evolucoes.Where(e => e.id_chamado == id);

            ViewBag.id_usuario = new SelectList(_contexto.Usuarios, "id_usuario", "nome_usuario", model.ChamadoAtual.id_usuario).OrderBy(p => p.Text);
            ViewBag.id_chamado = id;
            ViewBag.id_setor = new SelectList(_contexto.Setores, "id_setor", "nome_setor", model.ChamadoAtual.id_setor);
            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            if (model == null)
            {
                return HttpNotFound();
            }
            return View(model);



QUANDO TENTO FAZER ESSA ATRIBUIÇÃO O VS ME APRESENTA A MENSAGEM ABAIXO:
model.Evolucoes = _contexto.Evolucoes.Where(e => e.id_chamado == id);


Erro 3 Cannot implicitly convert type 'System.Linq.IQueryable<Albasi.Atende.Dominio.Entidades.Evolucao>' to 'System.Collections.Generic.ICollection<Albasi.Atende.Dominio.Entidades.Evolucao>'. An explicit conversion exists (are you missing a cast?) E:\\DevSpace\\Projetos\\Albasi.Atende\\Albasi.Atende.Web\\Controllers\\ChamadoController.cs 77 31 Albasi.Atende.Web

O que preciso modificar?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar