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 ?
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!