1
resposta

Erro aula 4 - Erro de Referência de objeto para o ViewBag.Categorias

Olá a todos.

Estou com o seguinte erro quando tento fazer a parte de puxar pela lista usando o select. Estou utilizando o mesmo código que foi passado na aula.

Form.cshtml

<form action="/Produto/Adiciona">
        <label for="nome">Nome:</label>
        <input id="nome" name="produto.Nome" />

        <label for="preco">Preço:</label>
        <input id="preco" name="produto.Preco" />

        <label for="quantidade">Quantidade:</label>
        <input id="quantidade" name="produto.Quantidade" />

        <label for="descricao">Descrição:</label>
        <input id="descricao" name="produto.Descricao" />

        <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" />
    </form>

E o código da - ProdutoController

public ActionResult Index()
        {
            ProdutosDAO dao = new ProdutosDAO();
            IList<Produto> produtos = dao.Lista();
            ViewBag.Produtos = produtos;
            return View();
        }

        public ActionResult Form()
        {
            CategoriasDAO dao = new CategoriasDAO();
            IList<CategoriaDoProduto> categorias = dao.Lista();
            ViewBag.Categorias = categorias;
            return View();
        }

        [HttpPost]
        public ActionResult Adiciona(Produto produto)
        {
            ProdutosDAO dao = new ProdutosDAO();
            dao.Adiciona(produto);
            return RedirectToAction("Index", "Home");
        }

Porém, quando coloca para rodar, aparece a seguinte mensagem de erro:

System.NullReferenceException: 'Referência de objeto não definida para uma instância de um objeto.'

Agradeço a atenção de todos, obrigado!

1 resposta

Oi Fabrizio, tudo bem? Em que linha acontece esse erro?