Meu código está decrementando porém toda vez eu preciso atualizar a pagina para visualizar a mudança !!
Segue o código html:
@model IList<CaelumEstoque.Models.Produto>
<title>Index</title>
<table class="table table-hover">
<thead>
<tr>
<th>Id</th>
<th>Nome</th>
<th>Quantidade</th>
<th></th>
</tr>
</thead>
<tbody>
@foreach (var produto in Model)
{
<tr>
<td>@produto.Id</td>
<td>
@Html.RouteLink(produto.Nome, "DetalheProduto", new { id = produto.Id })
</td>
<td id="#quantidade@(produto.Id)">@produto.Quantidade</td>
<td>
<a href="#" onclick="decrementa(@produto.Id);">Decrementar</a>
</td>
</tr>
}
</tbody>
</table>
<br />
<div>
<button type="button" class="btn btn-group">@Html.RouteLink("Cadastrar Produto", "CadastrarProduto")</button>
</div>
<script type="text/javascript" src="~/Scripts/jquery-1.10.2.js"></script>
<script type="text/javascript">
function decrementa(produtoId) {
var url = "@Url.Action("DecrementaQuantidade", "Produto")";
var params = { id: produtoId };
$.post(url, params, atualiza);
}
function atualiza(resposta) {
$("#quantidade" + resposta.Id).html(resposta.Quantidade);
}
</script>
Código do Controller:
public ActionResult DecrementaQuantidade(int id)
{
ProdutosDAO pDAO = new ProdutosDAO();
Produto produto = pDAO.BuscaPorId(id);
produto.Quantidade--;
pDAO.Atualiza(produto);
return Json(produto);
}