Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Igor Soto

[Resolvido] MVC + Entity Framework

Recommended Posts

Boa tarde pessoal, estou com o seguinte problema:

 

No banco tenho a relação das tabelas Usuario x Profissao, agora no ASP.NET C#:

 

public class UsuarioController : Controller

{

 

public ActionResult Inserir()

{

return View();

}

 

[HttpPost]

public ActionResult Inserir(Usuario itemUsuario)

{

 

if (ModelState.IsValid)

{

using (MyEntities entities = new MyEntities())

{

itemUsuario.Profissao = entities.Profissao.Where(p => p.IdProfissao == itemUsuario.Profissao.IdProfissao).First();

entities.AddToUsuario(itemUsuario);

entities.SaveChanges();

}

 

return Redirect("/usuario/cadastro_sucesso/");

}

}

 

// Agora se eu trocar o método acima que não está funcionando, pelo de baixo, funciona, segue:

 

[HttpPost]

public ActionResult Inserir(Usuario itemUsuario)

{

 

if (ModelState.IsValid)

{

using (MyEntities entities = new MyEntities())

{

Usuario newUsuario = new Usuario();

newUsuario.Nome = itemUsuario.Nome;

newUsuario.Telefone = itemUsuario.Telefone;

newUsuario.Profissao = entities.Profissao.Where(p => p.IdProfissao == itemUsuario.Profissao.IdProfissao).First();

 

entities.AddToUsuario(newUsuario);

entities.SaveChanges();

}

 

return Redirect("/usuario/cadastro_sucesso/");

}

}

 

}

 

Minha View:

 

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/MasterPage.Master" Inherits="System.Web.Mvc.ViewPage<MyApp.Models.Usuario>" %>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">

 

<% using (Html.BeginForm()){ %>

 

<p>

<%= Html.LabelFor(model => model.Nome) %>

<%= Html.TextBoxFor(model => model.Nome)%>

<span class="validation_message">

<%= Html.ValidationMessageFor(model => model.Nome)%>

</span>

</p>

<p>

<%= Html.LabelFor(model => model.Telefone) %>

<%= Html.TextBoxFor(model => model.Telefone)%>

<span class="validation_message">

<%= Html.ValidationMessageFor(model => model.Telefone)%>

</span>

</p>

<p>

<%= Html.LabelFor(model => model.Profissao.IdProfissao)%>

<%= Html.DropDownListFor(model => model.Profissao.IdProfissao, ProfissaoRepository.GetDropDownList()) %>

<span class="validation_message">

<%= Html.ValidationMessageFor(model => model.Profissao.IdProfissao)%>

</span>

</p>

<p><input type="submit" value="Cadastrar" /></p>

 

<% } %>

 

</asp:Content>

 

-----

 

Alguém tem uma idéia porque o primeiro método não funciona e o segundo sim, o que estou fazendo de errado?

 

Muito Obrigado desde já.

 

podem deixar, o código está correto, já achei a falha aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.