Boa tarde a todos!
Meu código está trazendo o seguinte erro ao executá-lo: "Não é possível fazer associação em tempo de execução em uma referência nula".
Percebi que ao retornar para a view form há algum problema de validação, por algum motivo que ainda não consegui descobrir minha aplicação trás o erro na seguinte parte do meu código na View "Form" do controller "Produtos":
@{
Layout = null;
}
Alguém consegue me dar uma luz? Segue meu código abaixo:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Form</title>
</head>
<body>
<div>
<form action="/Produto/Adiciona" method="post">
<label for="nome">Nome:</label>
<input id="nome" name="produto.Nome" value="@ViewBag.Produtos.Nome"/>
@Html.ValidationMessage("produto.Nome")
<label for="preco">Preço:</label>
<input id="preco" name="produto.Preco" value="@ViewBag.Produtos.Preco" />
@Html.ValidationMessage("produto.Preco")
<label for="quantidade">Quantidade:</label>
<input id="quantidade" name="produto.Quantidade" value="@ViewBag.Produtos.Quantidade" />
@Html.ValidationMessage("produto.Quantidade")
<label for="descricao">Descrição:</label>
<input id="descricao" name="produto.Descricao" value="@ViewBag.Produtos.Descricao" />
@Html.ValidationMessage("produto.Descricao")
<label for="categoria">Categoria:</label>
<select id="categoria" name="produto.CategoriaId" >
@foreach (var categoria in ViewBag.Categoria)
{
<option value="@categoria.Id" >@categoria.Nome</option>
}
</select>
<input type="submit" value="Cadastrar" />
</form>
</div>
</body>
</html>
using CaelumEstoque.DAO;
using CaelumEstoque.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace CaelumEstoque.Controllers
{
public class ProdutoController : Controller
{
// GET: Produto
public ActionResult Index()
{
ProdutosDAO dao = new ProdutosDAO();
IList<Produto> produto = dao.Lista();
ViewBag.Produtos = produto;
return View();
}
public ActionResult Form()
{
CategoriasDAO categoriasDAO = new CategoriasDAO();
IList<CategoriaDoProduto> categorias = categoriasDAO.Lista();
ViewBag.Categoria = categorias;
ViewBag.Produtos = new Produto();
return View();
}
[HttpPost]
public ActionResult Adiciona(Produto produto)
{
if (ModelState.IsValid)
{
ProdutosDAO dao = new ProdutosDAO();
dao.Adiciona(produto);
return RedirectToAction("Index");
}
else
{
ViewBag.Produto = produto;
CategoriasDAO categoriasDAO = new CategoriasDAO();
ViewBag.Categoria = categoriasDAO.Lista();
return View("Form");
}
}
}
}