Usuário com melhor resposta
Pegar valor de DropDownList

Pergunta
-
Boa tarde,
Estou estudando o ASP.NET MVC e me deparei com um problema que não sei resolver, eu tenho um DropDownList, eu consegui preencher ele utilizando um List<String> e depois passando esse List para a View em um ViewBag, os valores do banco são nomes de países, o usuario precisa selecionar o país, mas no banco deve ir o ID do país na tabela de usuários.
Eu vi que existe um tal SelectListItem, com ele eu consigo além do valor que vem do banco (no caso o país), posso adicionar um valor de referencia que pode até ser o próprio ID (do país no banco), ele tem um método que retorna esse valor de referencia com base na seleção do usuario, mas não consegui preencher o DropDownList com assim. Como posso fazer isso? Obrigado.
Código do método que cria a ViewBag:
public ActionResult FormCadastrarUsuario() { Usuario u = new Usuario(); ViewBag.itens = u.BuscaPais(); return View(); }
Código da View:
@Html.Label("País") <br /> @Html.DropDownListFor(model => model.Pais, new SelectList(ViewBag.itens))
Respostas
-
// um exemplo de como recuperar os valores vindos da view
[HttpPost] public ActionResult Salvar(int itens) { //na variavel "itens" ja vai vir com o selectedvalue }
--Rafael Albuquerque
- Marcado como Resposta Alan F. Almeida terça-feira, 14 de janeiro de 2014 16:12
-
Rafael,
obrigado pela ajuda, mas não consegui fazer da forma que você me falou, estou utilizando um tutoria que encontrei pra fazer isso em JavScript mesmo. Segue o Link.
http://wescley.net/2012/03/10/dropdownlist-utilizando-jquery-com-banco-de-dados/
- Marcado como Resposta Alan F. Almeida terça-feira, 14 de janeiro de 2014 16:12
Todas as Respostas
-
Alan, da uma olhada nesse post vê se te ajuda
--Rafael Albuquerque
-
Rafael obrigado pela resposta, tenho que alterar alguma coisa na View?
Conforme vi no post indicado, coloquei assim, agora o método no model retorna um List<Pais>, veja como ficou no controller:
public ActionResult FormCadastrarUsuario() { Usuario u = new usuario(); List<Pais> lista = u.BuscaPais(); ViewBag.itens = new SelectList(lista, "ID", "Nome","0"); return View(); }
Na View deixei do jeito que estava acima, no DropDownList ele exibe agora System.Web.Mvc.SelectListItem
-
-
-
-
-
a questao da validação: ja que o campo é obrigatorio vc pode criar um script(javascript) ou mesmo server(backend) que não tente salvar o conteudo antes que o usuario selecione o pais.
agora a questao do selectedValue como vc esta recuperando o valor do dropdown?
--Rafael Albuquerque
-
-
// um exemplo de como recuperar os valores vindos da view
[HttpPost] public ActionResult Salvar(int itens) { //na variavel "itens" ja vai vir com o selectedvalue }
--Rafael Albuquerque
- Marcado como Resposta Alan F. Almeida terça-feira, 14 de janeiro de 2014 16:12
-
Rafael,
obrigado pela ajuda, mas não consegui fazer da forma que você me falou, estou utilizando um tutoria que encontrei pra fazer isso em JavScript mesmo. Segue o Link.
http://wescley.net/2012/03/10/dropdownlist-utilizando-jquery-com-banco-de-dados/
- Marcado como Resposta Alan F. Almeida terça-feira, 14 de janeiro de 2014 16:12