Por favor pessoal, não consigo resolver esse problema. Podem me ajudar?
Seguinte...
Quando executo a página de /Produto/Form
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Form</title>
</head>
<body>
<form action="/Produto/Adiciona" method="post">
<label for="nome">Nome</label>
<input id="nome" name="produto.nome" value="@ViewBag.produto.nome" />
@Html.ValidationMessage("produto.nome")
<label for="preco">Preço</label>
<input id="preco" name="produto.preco" value="@ViewBag.produto.preco" />
<label for="quantidade">Quantidade</label>
<input id="quantidade" name="produto.quantidade" value="@ViewBag.produto.quantidade" />
<label for="descricao">Descrição</label>
<input id="descricao" name="produto.descricao" value="@ViewBag.produto." />
<label for="categoria">Categoria</label>
<select id="categoria" name="produto.CategoriaId">
@foreach(var categoria in ViewBag.categorias)
{
<option value="@categoria.Id" >
@categoria.Nome
</option>
}
</select>
<input type="submit" value="Cadastrar" />
</form>
</body>
</html>
o código do controle é
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using CaelumEstoque.DAO;
using CaelumEstoque.Models;
namespace CaelumEstoque.Controllers
{
public class ProdutoController : Controller
{
//
// GET: /Produto/
public ActionResult Index()
{
ProdutosDAO ctx = new ProdutosDAO();
IList<Produto> lstProduto = ctx.Lista();
ViewBag.produtos = lstProduto;
return View();
}
public ActionResult Form()
{
CategoriasDAO dao = new CategoriasDAO();
IList<CategoriaDoProduto> lstCategoria = dao.Lista();
ViewBag.categorias = lstCategoria;
return View();
}
[HttpPost]
public ActionResult Adiciona(Produto produto)
{
if (ModelState.IsValid)
{
ProdutosDAO dao = new ProdutosDAO();
dao.Adiciona(produto);
return RedirectToAction("Index", "Home");
}
else
{
CategoriasDAO dao = new CategoriasDAO();
IList<CategoriaDoProduto> lstCategoria = dao.Lista();
ViewBag.categorias = lstCategoria;
return View("Form");
}
}
}
}
Recebo o erro: "Detalhes da Exceção: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Não é possível fazer associação em tempo de execução em uma referência nula"
Linha 1:
Linha 2: @{
Linha 3: Layout = null;
Linha 4: }
Linha 5: