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
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
Curtir tópico
+ 0
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.
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 * * *
* * * IMPLEMENTAÇÃO NO CONTROLLER * * *
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?
* * * 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
Clique aqui para fazer login e interagir na Comunidade :)