1
resposta

Ao clicar em decremente ele não faz nada

ele não esta chamando a função decrementaQTD

código abaixo:

model IList<CaelumEstoque.Models.Produto>

<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, "VisualizaProduto", new { id = produto.Id })</td>
                <td id="quantidade@(produto.Id)">@produto.Quantidade</td>
                <td>
                    <a href="#" onclick="decrementa(@produto.Id)">Decrementa</a>
                </td>
            </tr>
        }

    </tbody>
</table>

<script type="text/javascript" src="~/Scripts/jquery-1.10.2.js"></script>
<script type="text/javascript">
  function decrementa(produtoId){
    var url = "@Url.Action("DecrementaQtd", "Produto")";
    var params = {id : produtoId};
    $.post(url, params, atualiza);
  }

  function atualiza(resposta){
    var elemento = $("#quantidade" + resposta.Id);
    elemento.html(resposta.Quantidade);
  }
</script>
public ActionResult DecrementaQtd(int id) {
            ProdutosDAO dao = new ProdutosDAO();
            Produto produto = dao.BuscaPorId(id);
            produto.Quantidade--;

            dao.Atualiza(produto);
            return Json(produto);
        }
1 resposta

Olá v006,

no id da td que mostra a quantidade na tabela, ao invés de passar @(produto.Id) veja se passando direto @produto.Id se resolve o problema

<td id="quantidade@produto.Id">@produto.Quantidade</td>