Usuário com melhor resposta
Como criar controller e view de relacionamento de 1:N

Pergunta
-
Boa noite.
Tenho aqui 2 tabelas, banco que corresponde a id e Nome, e dados bancários que corresponde a id, idBanco, conta e Agencia.
Como faço pra criar o controller e as views de contatoBancario e dadosBancarios que busquem uma lista ja cadastrada de bancos??
Obrigado.
Respostas
-
Seu model 'ContatoBancario' não possui uma propriedade 'ICollection<Banco>' ?
Dá uma olhada neste link: http://buildstarted.com/2010/08/27/entity-framework-with-many-to-many-one-to-many-and-one-to-one-relationships/
Olha como é feito um relacionamento one to many.
http://www.linkedin.com/pub/murilo-kunze/44/191/455
- Editado Murilo Kunze quarta-feira, 4 de julho de 2012 02:24
- Sugerido como Resposta Wilian NS quarta-feira, 4 de julho de 2012 10:55
- Marcado como Resposta Kakashi963 sexta-feira, 6 de julho de 2012 00:19
-
Hmm cara não tenho o ICollection, consegui resolver com isso na view:
<div class="editor-field"> @* @Html.DropDownList("Banco", "Selecione um Banco...")*@ @Html.DropDownListFor(model => model.IdBanco, new SelectList((new Sacer.Models.SacerContext()).banco.ToList(), "IdBanco", "Nome"), "Selecione um banco...") @Html.ValidationMessageFor(model => model.banco.IdBanco) </div>
Mas agora, estou pensando em uma nova possibilidade.
Na minha view para cadastro de banco, como colocar logo abaixo as views para ja cadastrar Banco, depois contatosBancários e dadosBancários?
- Marcado como Resposta Kakashi963 sexta-feira, 6 de julho de 2012 00:19
-
Parece que sua dúvida é como carregar o banco e seus respectivos "filhos" para exibir na view ou no cadastro.
Segue um exemplo de como carregar os dados relacionados usando "Include":
var listaBancos = (from c in _entities.Banco.Include("DadosBancario").Include("ContatoBancario") select c).ToList();
No seu controller basta retornar o model Banco para a View:
public ActionResult ListaBancos() { var listaBancos = ... ; return View(listaBancos) }
Na view você então lista os bancos e respectivas entidades relacionadas:
@model IEnumrable<SeuNamespace.Banco>foreach(var item in Model) { @Html.Encode(nome) foreach(var itemDados in item.DadosBancario) { <!-- lista os dadosbancarios --> } foreach(var itemContato in item.ContatoBancario) { <!-- lista os contatos--> } }
- Marcado como Resposta Kakashi963 sexta-feira, 6 de julho de 2012 00:19
Todas as Respostas
-
-
-
Seu model 'ContatoBancario' não possui uma propriedade 'ICollection<Banco>' ?
Dá uma olhada neste link: http://buildstarted.com/2010/08/27/entity-framework-with-many-to-many-one-to-many-and-one-to-one-relationships/
Olha como é feito um relacionamento one to many.
http://www.linkedin.com/pub/murilo-kunze/44/191/455
- Editado Murilo Kunze quarta-feira, 4 de julho de 2012 02:24
- Sugerido como Resposta Wilian NS quarta-feira, 4 de julho de 2012 10:55
- Marcado como Resposta Kakashi963 sexta-feira, 6 de julho de 2012 00:19
-
Hmm cara não tenho o ICollection, consegui resolver com isso na view:
<div class="editor-field"> @* @Html.DropDownList("Banco", "Selecione um Banco...")*@ @Html.DropDownListFor(model => model.IdBanco, new SelectList((new Sacer.Models.SacerContext()).banco.ToList(), "IdBanco", "Nome"), "Selecione um banco...") @Html.ValidationMessageFor(model => model.banco.IdBanco) </div>
Mas agora, estou pensando em uma nova possibilidade.
Na minha view para cadastro de banco, como colocar logo abaixo as views para ja cadastrar Banco, depois contatosBancários e dadosBancários?
- Marcado como Resposta Kakashi963 sexta-feira, 6 de julho de 2012 00:19
-
-
Certo, oq estou pensando em fazer pra ter uma view com os 3 cadastros, é criar uma partial view, onde eu posso chamar os cadastros que desejo.
Entretanto, eu sei que preciso criar uma classe que represente o model a ser utilizado, mas como coloco meu banco ali?
Obrigado
-
Parece que sua dúvida é como carregar o banco e seus respectivos "filhos" para exibir na view ou no cadastro.
Segue um exemplo de como carregar os dados relacionados usando "Include":
var listaBancos = (from c in _entities.Banco.Include("DadosBancario").Include("ContatoBancario") select c).ToList();
No seu controller basta retornar o model Banco para a View:
public ActionResult ListaBancos() { var listaBancos = ... ; return View(listaBancos) }
Na view você então lista os bancos e respectivas entidades relacionadas:
@model IEnumrable<SeuNamespace.Banco>foreach(var item in Model) { @Html.Encode(nome) foreach(var itemDados in item.DadosBancario) { <!-- lista os dadosbancarios --> } foreach(var itemContato in item.ContatoBancario) { <!-- lista os contatos--> } }
- Marcado como Resposta Kakashi963 sexta-feira, 6 de julho de 2012 00:19