Salvar dados de uma DownpDownList em uma ViewBag
09/01/2015
0
Possuo um DropDownList vindo de uma consulta. Necessito gravar o dado selecionado em uma ViewBag para utilizar em outro método.
O DropDown, vem desta viewbag:
ViewBag.Contrato = usuarioRepository.Lista.Where(u => u.sLogin == autenticacaoProvider.UsuarioAutenticado.Login).Select(u => u.SqContrato);
Necessito que o valor escolhido, fique salvo em outra ViewBag, para utilizar em outro filtro.
Randrade
Posts
09/01/2015
Randrade
Alguém teria algum exemplo de como salvar os dados em uma ViewModel?
09/01/2015
Joel Rodrigues
09/01/2015
Randrade
Porém, necessito salvar um valor selecionado pelo usuário em um DropDownList, na ViewModel. E é nesta parte que estou com dificuldades.
O DropdownList é pupulado por essa ViewBag.
@Html.DropDownList("Contrato", new SelectList(ViewBag.Contrato, "Contrato"))
Teria alguma ideia de como eu possa fazer isso?
Eu sei que é uma coisa simples, isso que me deixa com mais raiva... kkkk
09/01/2015
Randrade
Adicionei esses métodos aqui no meu controller, e funcionou.
public ActionResult Contrato() { var contrato = new Usuario() { SqContrato = 0 }; return View(contrato); } [HttpPost] public ActionResult Contrato(Int16? Contrato) { ViewBag.UserContrato = Contrato; return View(); }
Só tenho um problema, essa "ViewBag.UserContrato" só é visível na view Contrato. Como faço para utilizar ela nas demais?
12/01/2015
Joel Rodrigues
12/01/2015
Randrade
Criei uma Session onde eu consigo o valor selecionado, no lugar da ViewBag em meu controller:
System.Web.HttpContext.Current.Session["Contrato"] = Contrato;
Logo após criei um Helper para converter o valor da session e armazenar em uma variável.
public static class SessionHelper { public static int Contrato { get { return Convert.ToInt16(HttpContext.Current.Session["Contrato"]); } set { HttpContext.Current.Session["Contrato"] = value; } } }[/code E por fim, retorno o meu Helper como variável e adiciono ele na consulta: [code] public ViewResult Ferias() { var contrato = SessionHelper.Contrato; var usuarios = funcionarioFeriasRepository.Lista.Where(r => r.slogin == autenticacaoProvider.UsuarioAutenticado.Login && r.SqContrato == contrato).OrderBy(u => u.DtInicioConcessao) .ToList(); return View(usuarios); }
Assim consigo armazenar e utilizar onde necessito.
Clique aqui para fazer login e interagir na Comunidade :)