none
DropDownList utilizando Razor no MVC4. RRS feed

  • Pergunta

  • Galera bom dia. 

    Em uma tela de edição de registro eu preciso de um dropdownlist contendo todos os estados brasileiros(apenas siglas).

    Mas como sou novo no MVC e Razor e essa é minha primeira oportunidade de fazer algo assim estou enfrentando problemas, pois, não faço a mínima ideia de como fazer tal coisa, tendo em vista de que se trata de uma tela de edição onde todos os dados já irão vir preenchidos e o estado deve ser selecionado. 

    Será que alguém pode me ajudar com isso?

    Agradeço. 


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    quarta-feira, 30 de outubro de 2013 13:29

Todas as Respostas

  • Olá Fernando,

    Tenha em mente que o o DropDownList nada mais do que um elemento <select /> sendo que os itens são <options />

    Para MVC existe diversos helper html (textbox, password, checkboox e etc...) um destes helper é o DropDownList, veja um exemplo:

    http://www.asp.net/mvc/tutorials/javascript/working-with-the-dropdownlist-box-and-jquery/using-the-dropdownlist-helper-with-aspnet-mvc

    Caso você esteja usando o View Engine Razor, aqui vai um exemplo:
    @{
        var listItems = new List<ListItem>() 
        { 
            new ListItem { Text = "Desligado", Value = "0" }, 
            new ListItem { Text = "Ligado", Value = "1" } 
        };
    }
    
    @Html.DropDownList("nomeControle", new SelectList(listItems));



    Vitor Mendes | http://www.vitormendes.com.br/

    "Ajuda teu semelhante a levantar a sua carga, porém, não a carregá-la." (Pitágoras)


    • Editado Vitor Mendes quarta-feira, 30 de outubro de 2013 13:41
    quarta-feira, 30 de outubro de 2013 13:41
  • Obrigado pelo retorno Vitor. 

    Dei uma olhada no link em que mandou. 

    E o que eu queria entender é como no MVC eu atribuo o selected dessa combo no meu controller, pois, irei necessitar fazer isso mesmo que eu atribua ela como option e coloque a lista fixa entendeu?

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    quarta-feira, 30 de outubro de 2013 17:37

  •            
    @Html.DropDownListFor(
    model => model.Codigo, // Propriedade da model onde fica valor selecionado pelo usuário
    new SelectList(Model.Lista, "Codigo","Descricao"),"Selecione") //Minha Lista, incicação do value e text do dropdown e valor default(selecione) 

    quarta-feira, 30 de outubro de 2013 17:53

  •            
    @Html.DropDownListFor(
    model => model.Codigo, // Propriedade da model onde fica valor selecionado pelo usuário
    new SelectList(Model.Lista, "Codigo","Descricao"),"Selecione") //Minha Lista, incicação do value e text do dropdown e valor default(selecione) 

    Vlw pelo retorno cara, mas isso não irá resolver o meu problema. 

    Abraço.


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    quarta-feira, 30 de outubro de 2013 19:40
  • Não entendi o que você precisa ?!

    vc quer criar um select com seus options fixos no html e

    em sua controller receber o estado seleciona ?

    quinta-feira, 31 de outubro de 2013 10:51
  • Eu posso ter uma classe com todos os estados brasileiros, e carregar meu dropdown. 

    Até ai tudo bem, só que eu não faço a mínima ideia de como assim que eu carregar essa tela de edição eu ja vir com essa dropdown selecionada com o estado correspondente ao endereço do cliente a ser alterado, e contendo todos os outros estados.

    No webForms eu fazia de olhos fechados mas no MVC eu nunca fiz.

    Abraço. 


    Voce pode encarar um erro como uma besteira a ser esquecida, ou como um resultado que aponta uma nova direcao by Steve Jobs

    quinta-feira, 31 de outubro de 2013 12:58
  •  public sealed class ModelTeste
        {
            public ModelTeste()
            {
                Lista = new List<SelectListItem>();
            }
    
            public List<SelectListItem> Lista { get; set; }
            public Int32 Codigo { get; set; }
    
        }

      [HttpGet]
            public ActionResult Editar()
            {
                SelectListItem x = new SelectListItem() { Value = "1", Text="SP" };
                SelectListItem y = new SelectListItem() { Value = "2", Text = "RJ" };
    
                var model = new ModelTeste();
                model.Lista.Add(x);
                model.Lista.Add(y);
                //model.Codigo = 2;
                return View(model);
            }

    del MeuProjetoDeTeste.Models.ModelTeste
    
    @{
        ViewBag.Title = "Editar";
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
    
    <h2>Editar</h2>
    
    
    @Html.DropDownListFor(model => model.Codigo, Model.Lista , "Selecione")

    Faça um teste com este exemplo.Primeiro só copie e cole. Depois na action editar remova o comentário. Você vai perceber quando você descometa o código RJ vem selecionado. Assim funciona o dropdown se minha propriedade código vem preenchida ele traz selecionada. Diferente disso traz o valor default. Espero ter entendido sua pergunta.

    quinta-feira, 31 de outubro de 2013 16:20