Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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.
Carregando comentários...