Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

View bag, metodo Form

O exercício tem o intuito de fazer com que a pagina form mostre os dados que o usuário enviou mas não foram validado no controler, esse problema resolvi com o código abaixo:

  else
            {
                ViewBag.Produto = produto;

                ViewBag.Categorias = daocat.Lista();
                return View("Form");
            }

E com a view:<form action="/Produto/Adiciona"> <label for="nome">Nome:</label> <input id="nome" name="produto.Nome" value="@ViewBag.Produto.Nome" />

O problema é :

    public ActionResult Form()
        {
            Produto produto;
            CategoriasDAO daoCate = new CategoriasDAO();
            ViewBag.Categorias = daoCate.Lista();


            ViewBag.Produto = produto;


            return View();
        }
Como mandar uma view bag de produtos vazio para ser exibida na

<input id="nome" name="produto.Nome" value="@ViewBag.Produto.Nome" />

se for chamado a pagina http://localhost:51270/Produto/Form

O metodo não vai enviar nada para view bag então vai dar erro.

2 respostas
solução!

Olá Flávio

Veja que na action Form, seu código não inicializa o valor da variável produto, você simplesmente declara a variável (portanto seu valor inicial é indefinido).

Para corrigir o problema, você precisa fazer com que a variável produto seja inicializada com um produto vazio:

Produto produto = new Produto();

Agora sim, obrigado.