Verifiquei que era possível remover a quantidade e o produto ter seu estoque negativo. Resolvi implementar o método ModelState, como aprendido nas aulas anteriores. Meu método ficou assim:
public ActionResult DecrementaQtd(int id)
{
ProdutosDAO dao = new ProdutosDAO();
Produto produto = dao.BuscaPorId(id);
if (produto.Quantidade <= 0 )
{
ModelState.AddModelError("produto.QtdBaixa", "Estoque baixo");
}
if (ModelState.IsValid)
{
produto.Quantidade--;
dao.Atualiza(produto);
return Json(produto);
}
else
{
return View("Index");
}
}
Até então ele entende a lógica e não faz a operação, ele entende que tem um erro. Mas a mensagem não aparece na tela. Essa opção só funciona com formulários? Coloquei na minha tabela:
<table class="table table-hover">
@Html.ValidationMessage("produto.QtdBaixa")
E mesmo assim não exibe a mensagem. Gostaria de entender o porque e se não for possível dessa maneira, qual é a forma mais adequada? Retornando o erro pelo Json? Obrigado