Opa, Caio! Como vai?
Agora o problema não está mais no JS e sim no código do back-end em C#! Veja que o seu controlador continua devolvendo um IActionResult
representando uma visualização mesmo nesse caso, onde vc não deseja fazer nenhuma navegação! Afinal de conta o AJAX serve justamente para atualizar a tela sem fazer navegação! Ou seja, o que vc quer na realidade é apenas devolver uma resposta informando que a operação de atualização deu certo e possivelmente devolver junto um JSON com informações relevantes para vc!
Sendo assim, o retorno do método acionado no seu controlador deve mudar! Em vez de fazer
return View( /* seu modelo de dados a ser devolvido */ );
Vc terá que fazer
return Json( /* seu modelo de dados a ser devolvido */ );
Em seguida, no código JS, utilize o seguinte código para fazer a requisição:
$.ajax(
{
url: '/Home/UpdateQuantidade',
type: 'POST',
contentType: 'application/json',
data: JSON.stringify(data)
}).done(function(response) {
console.log(response); // Essa linha irá imprimir no console a resposta que vc obteve.
// Lógica de atualização da tela omitida.
});
Feito isso, vc verá que no console do navegador será impressa a resposta que vc obteve. Daí será apenas substituir com a sua lógica de atualização do DOM a parte onde aparece o comentário // Lógica de atualização da tela omitida
.
Para saber mais: O que vc está tentando fazer é transformar o método do seu controlador num endpoint, conceito muito comum quando falamos de APIs! Aqui na Alura temos uma sequência de cursos bacanas sobre construção de APIs usando o Asp.NET Core! Então, indico fortemente a vc esses cursos! Deixo a seguir o link do primeiro pra vc dar uma olhada caso queira:
APIs Rest com Asp.NET Core 2.1 Parte 1: Da app MVC para API
Pegou a ideia? Qualquer coisa é só falar!
Grande abraço e bons estudos, meu aluno!