none
Entendendo dropdownlist dinamico com mvc3 RRS feed

  • Pergunta

  • Boa tarde. Preciso de uma ajuda para um drodownlist dinamico. Já li um monte de posts, mas infelizmente ainda nao esta claro para mim. Não gostaria de usar javascript!

    Criei esta model:

     public class FiliaisUsuario
        {
            public Guid BranchCredentialId { get; set; }
            public Guid ContactId { get; set; }
            public string ContactName { get; set; }
            public Guid AccountId { get; set; }
            public string AccountName { get; set; }
            public Guid BranchId { get; set; }
            public string BranchName { get; set; }
            public IEnumerable<Empresa> Empresa { get; set; }
            public IEnumerable<Filiais> Filiais { get; set; }
        }
        public class Empresa
        {
            [Key]
            public Guid AccountId { get; set; }
            public string AccountName { get; set; }
            public virtual ICollection<Filiais> Filiais { get; set; }
        }
        public class Filiais
        {
            [Key]
            public Guid BranchId { get; set; }
            public string BranchName { get; set; }
            public virtual Empresa Empresa { get; set; }
        }

    no meu controller, populo a model desta forma:

     var empresa = (from emp in db.Accounts
                                   join b in db.Branchs on emp.AccountId equals b.AccountId
                                   join bc in db.BranchCredentials on b.BranchId equals bc.BranchId
                                   join c in db.Contacts on bc.ContactId equals c.ContactId 
                                   where c.ContactId == contactsId
                                   orderby emp.Name ascending 
                                   select emp).ToList();
                var filial = (from b in db.Branchs
                              join bc in db.BranchCredentials on b.BranchId equals bc.BranchId
                              join c in db.Contacts on bc.ContactId equals c.ContactId
                              where c.ContactId == contactsId
                              orderby b.Name ascending
                              select b).ToList();
    
                ViewBag.Accounts = empresa.Select(empresas => new Empresa() {AccountId = empresas.AccountId, AccountName = empresas.Name}).ToList().Distinct();
                ViewBag.Branchs = filial.Select(branchse => new Filiais() {BranchId = branchse.BranchId, BranchName = branchse.Name}).ToList();

    Neste contexto, o que fiz na view, foi simplesmente um select html norma dando um foreach nas viewbags que retorno do cliente. Até ai beleza, só que o que quero fazer é, quando o usuario escolher uma empresa no dropdownlist 1 o dropdownlist 2 carregue somente as filiais referentes à aquela empresa (dropdownlist1).

    Desde já agradeço a atenção de todos.

    sexta-feira, 9 de agosto de 2013 16:13

Todas as Respostas

  • Infelizmente você vai ter que usar javascript, ao selecionar o valor do primeiro combo você precisará fazer uma requisição no servidor baseado no valor selecionado, no mvc ele executa o código .net no server e devolve páginas com html.
    sexta-feira, 9 de agosto de 2013 17:04