[DÚVIDA] ASP NET MVC
06/04/2016
0
Bom dia, estou desenvolvendo uma aplicação em ASP .NET MVC 4 com C#, e surgiram alguns problemas.
Será que alguém pode me dar uma ajuda?
A aplicação é um cadastro de funcionários, onde as áreas, cargos e empregadores são gravados em tabelas próprias, eu passo apenas os IDs na tabela funcionário, até ai tudo bem. Porem quando eu vou fazer o update de algum funcionário, ele não está carregando a informação correta, ele está mostrando o primeiro CARGO, ÁREA e EMPREGADOR da tabela, e não o que está preenchido. (do jeito que eu fiz no código abaixo estava funcionando....)
A segunda e mais importante dúvida é, como eu faço para pegar o IDArea da tabela funcionários e salvar o nome da área em uma variável, preciso disso por que tenho uma tabela de EVENTOS, onde eu vou salvar as alterações de áreas, cargos e empregadores, e a coluna onde vou salvar essa informação recebe uma string. O grande problema aqui é fazer isso utilizando expressão lambda (ou algo que o entity framework entenda), se fosse com comando do SQL seria bem fácil. (O mapeamento do banco de dados foi feito com o Entity Framework)
Vamos ao código:
Controller
Trecho da view q exibe o drop daw list
Obrigado.
Será que alguém pode me dar uma ajuda?
A aplicação é um cadastro de funcionários, onde as áreas, cargos e empregadores são gravados em tabelas próprias, eu passo apenas os IDs na tabela funcionário, até ai tudo bem. Porem quando eu vou fazer o update de algum funcionário, ele não está carregando a informação correta, ele está mostrando o primeiro CARGO, ÁREA e EMPREGADOR da tabela, e não o que está preenchido. (do jeito que eu fiz no código abaixo estava funcionando....)
A segunda e mais importante dúvida é, como eu faço para pegar o IDArea da tabela funcionários e salvar o nome da área em uma variável, preciso disso por que tenho uma tabela de EVENTOS, onde eu vou salvar as alterações de áreas, cargos e empregadores, e a coluna onde vou salvar essa informação recebe uma string. O grande problema aqui é fazer isso utilizando expressão lambda (ou algo que o entity framework entenda), se fosse com comando do SQL seria bem fácil. (O mapeamento do banco de dados foi feito com o Entity Framework)
Vamos ao código:
Controller
//EDITAR public ActionResult Editar(long id) { Funcionarios funcionario = db.Funcionarios.Find(id); ViewBag.IDArea = new SelectList(db.Areas, "IDArea", "Nome"); ViewBag.IDCargo = new SelectList(db.Cargos, "IDCargo", "Nome"); ViewBag.IDEmpregador = new SelectList(db.Empregadores, "IDEmpregador", "Nome"); return View(funcionario); } [HttpPost] public ActionResult Editar(Funcionarios funcionario, Eventos evento) { Funcionarios comparaFunc = new Funcionarios(); ViewBag.IDArea = new SelectList(db.Areas, "IDArea", "Nome"); string novaArea = "???"; if (ModelState.IsValid) { //Alimentar a tabela EVENTOS antes de efetuar o update no banco de dados if (comparaFunc.IDArea != funcionario.IDArea) { evento.IDFuncionario = funcionario.IDFuncionario; evento.IDTipoDeEvento = 1; evento.NovoValor = novaArea; evento.DataAlteracao = DateTime.Now; } //atualizando as informações do funcionario funcionario.UltimaAtualizacao = DateTime.Now; funcionario.StatusFunc = funcionario.StatusFunc; db.Entry(funcionario).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(funcionario); }//fim EDITAR
Trecho da view q exibe o drop daw list
<div class="editor-label"> @Html.LabelFor(model => model.IDArea) </div> <div class="editor-field"> @Html.DropDownList("IDArea") @Html.ValidationMessageFor(model => model.IDArea) </div> <div class="editor-label"> @Html.LabelFor(model => model.IDCargo) </div> <div class="editor-field"> @Html.DropDownList("IDCargo") @Html.ValidationMessageFor(model => model.IDCargo) </div> <div class="editor-label"> @Html.LabelFor(model => model.IDEmpregador) </div> <div class="editor-field"> @Html.DropDownList("IDEmpregador") @Html.ValidationMessageFor(model => model.IDEmpregador) </div> /*No computador do meu trabalho ele carrega corretamente os dados nos ddl, na minha casa ele carrega o primeiro registro de cada tabela... estranho....*/
Obrigado.
Ricardo
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)