Brunno, muito obrigado. A sua dica foi parte da solução. O código JS ficou da forma abaixo, porém tinha um outro problema que relato após o código.
<script>
function decrementaQuantidade(produtoId) {
var parametros = { produtoId: produtoId };
$.post("@Url.Action("DecrementaQuantidade", "Produto")", parametros, atualizaQuantidade);
}
function atualizaQuantidade(produto) {
var elementoQuantidade = $("#quantidade_" + produto.Id);
elementoQuantidade.html(produto.Quantidade);
}
</script>
O outro problema que encontrei, foi referente ao global.asax. No método RegisterRoutes() tive que colocar a rota Default, no topo e as demais abaixo. Pois toda vez que o servidor solicitava a action 'DecrementaQuantidade' do Controller Produto, ele não encontrava e não fazia nada;
Então meu metodo ficou da seguinte forma:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
); //esse método tem que vir primeiro para funcionar.
routes.MapRoute("ListaProdutos",
"produtos", new { controller = "Produto", action = "Index" }); //Nome da rota, url, objeto controller e action
routes.MapRoute("VisualizaProduto",
"produto/{id}", new { controller = "Produto", action = "Visualiza" }); // a url com {id} indica que recebe id como parametro.
}
obrigado!