Estou criando uma aplicação baseado nos conhecimentos adquiridos nas aulas, porem tentei realizar uma modificação e não estou obtendo sucesso.
Durante a aula 3, foi ensinado como obter o CategoriaId através do valor selecionado do DropDownList. No entanto a model Produto(original do curso), possui uma propriedade CategoriaId do tipo int.
public class Produto
{
public int Id { get; set; }
[StringLength(20)]
public String Nome { get; set; }
public float Preco { get; set; }
public int? CategoriaId { get; set; }
Substitui a propriedade CategoriaId do tipo int para Categoria do tipo CategoriaDoProduto.
public class Produto
{
public int Id { get; set; }
[StringLength(20)]
public String Nome { get; set; }
public float Preco { get; set; }
public CategoriaDoProduto Categoria { get; set; }
Porem não consigo obter o valor dessa propriedade na Action.
Fiz uma mudança no codigo da View.Form, porém o resultado vem Null
<select id="categoria" name="produto.Categoria">
@foreach(var categoria in ViewBag.Categorias)
{
<option value="@categoria">@categoria.Nome</option>
}
</select>
Inclui esse alert na Controller somente para facilitar no entendimento do que pretendo fazer.
public ActionResult Adiciona(Produto produto)
{
Alert(produto.Categoria.Nome);
//Quero que apresente o nome da categoria selecionada
return View();
}
Observação: Não estou usando EntityFramework para persistir os dados, estou setando os valores manualmente apenas para efeito didático