No projeto final form para adicionar novos produtos nao funciona. Pelo que percebi depois que adicionou a Rota produtos/{id}.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
No projeto final form para adicionar novos produtos nao funciona. Pelo que percebi depois que adicionou a Rota produtos/{id}.
Favor mostrar o código do backend do controller
Talvez faltou no curso o instrutor explicar como funciona a execução das funções porque no actionlink ou route do adicionar ele acaba dando erro em outro método que não esta sendo explicitamente chamado.
using CaelumEstoque.DAO;
using CaelumEstoque.Models;
//using CaelumEstoque.Filtros;
using System.Collections.Generic;
using System.Web.Mvc;
namespace CaelumEstoque.Controllers
{
//[AutorizacaoFilter]
public class ProdutoController : Controller
{
//
// GET: /Produto/
[Route("produtos", Name = "ListaProdutos")]
public ActionResult Index()
{
object usuarioLogado = Session["usuarioLogado"];
if (usuarioLogado != null)
{
ProdutosDAO dao = new ProdutosDAO();
var produtos = dao.Lista();
return View(produtos);
}
else
{
return RedirectToAction("Index", "Login");
}
}
public ActionResult Form()
{
ViewBag.Produto = new Produto();
CategoriasDAO dao = new CategoriasDAO();
IList<CategoriaDoProduto> categorias = dao.Lista();
ViewBag.Categorias = categorias;
return View(categorias);
}
[HttpPost]
public ActionResult Adiciona(Produto produto)
{
int idDaInformatica = 1;
if (produto.CategoriaId.Equals(idDaInformatica) && produto.Preco < 100)
{
ModelState.AddModelError("produto.InformaticaComPrecoInvalido", "Produtos da categoria informática devem ter preço maior do que 100");
}
if (ModelState.IsValid)
{
ProdutosDAO dao = new ProdutosDAO();
dao.Adiciona(produto);
return RedirectToAction("Index");
}
else
{
ViewBag.Produto = produto;
CategoriasDAO categoriasDAO = new CategoriasDAO();
ViewBag.Categorias = categoriasDAO.Lista();
return View("Form");
}
}
[Route("produtos/{id}", Name = "VisualizaProduto")]
public ActionResult Visualiza(int id = 99)
{
if(id == 99)
{
return RedirectToAction("Adiciona","Produtos");
}
ProdutosDAO dao = new ProdutosDAO();
Produto produto = dao.BuscaPorId(id);
ViewBag.Produto = produto;
return View();
}
public ActionResult Visualiza()
{
return View();
}
public ActionResult DecrementaQtd(int id)
{
ProdutosDAO dao = new ProdutosDAO();
Produto produto = dao.BuscaPorId(id);
produto.Quantidade--;
dao.Atualiza(produto);
return Json(produto);
}
}
}