Pessoal,
Não estou conseguindo atualizar o campo Quantidade com este código, e não entendo porque não funciona.
```
@foreach (var produto in Model) {```
Podem me ajudar ?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Pessoal,
Não estou conseguindo atualizar o campo Quantidade com este código, e não entendo porque não funciona.
```
@foreach (var produto in Model) {```
Podem me ajudar ?
Achei o problema, mas não faz sentido pra mim..
O método Url.Action() retorna uma string, por isso, eu não estava colocando ele entre aspas duplas, e isto estava causando o erro. Alguém tem alguma explicalção ?
Olá Rafael,
Por mais que o retorno seja do tipo String, a chamada para um método ou propriedade estará imprimindo no html gerado a partir do cshtml. Por exemplo, se você coloca esse campo na tabela:
<td>@produto.Nome</td>
Por mais que o nome seja uma string, você gostaria que o Razor escrevesse na página que vai para o usuário o nome de todos os produtos na sua página com aspas duplas envolta? Chuto que provavelmente não vai ser interessante ter esse comportamento. Por isso que o Razor só escreve o texto puro, sem aspas nem nada.
Só que no javascript, como a URL precisa ser uma string, por isso que precisamos colocar as "" na Url.Action. Se não, caso você deixe apenas
var url = @Url.Action("DecrementaQtd", "Produto");
a página gerada ficaria assim
var url = /Produto/DecrementaQtd;
Que pro js não é nenhum tipo de valor que ele reconhece, por isso do erro. Agora fazendo assim:
var url = "@Url.Action("DecrementaQtd", "Produto")";
a página gerada fica certinha com a url como texto
var url = "/Produto/DecrementaQtd";
Lucas,
Muito obrigado pela explicação!