Quando a página carrega e adiciono um produto no carrinho, na action carrinho o codigo vem como null!!
Alguém me ajuda?? Já tentei revisar tudo e nada
Quando a página carrega e adiciono um produto no carrinho, na action carrinho o codigo vem como null!!
Alguém me ajuda?? Já tentei revisar tudo e nada
Roberta, tudo bom?
Compartilha o código, use o botao "<> INSERIR CÓDIGO".
A action que recebe a requisição está assim:
public IActionResult Shopping(string code)
{
if (!string.IsNullOrEmpty(code))
{
requestRepository.AddItem(code);
}
Request request = requestRepository.GetRequest();
List<RequestItem> items = request.Items;
ShoppingViewModel shoppingViewModel = new ShoppingViewModel(items);
//injetar na view os itens do repositório
return base.View(shoppingViewModel);
}
A minha view de carrinho está assim:
@{
ViewData["Title"] = "Carrinho";
}
@model ShoppingViewModel;
<h3>Meu Carrinho</h3>
<form method="post" asp-action="shopping"></form>
<div class="panel panel-default">
<div class="panel-heading">
<div class="row">
<div class="col-md-6">
Item
</div>
<div class="col-md-2 text-center">
Preço Unitário
</div>
<div class="col-md-2 text-center">
Quantidade
</div>
<div class="col-md-2">
<span class="pull-right">
Subtotal
</span>
</div>
</div>
</div>
<div class="panel-body">
@foreach (var item in Model.Items)
{
<div class="row row-center linha-produto" item-id="@item.ID">
<div class="col-md-3">
<img class="img-produto-carrinho" src="~/images/products/large_@(item.Product.Code).png" />
</div>
<div class="col-md-3">@item.Product.Name</div>
<div class="col-md-2 text-center">R$ @(item.UnitPrice)</div>
<div class="col-md-2 text-center">
<div class="input-group">
<span class="input-group-btn">
<button class="btn btn-default"
onclick="shopping.clickDecremento(this)">
<span class="glyphicon-minus"></span>
</button>
</span>
<input type="text" value="@(item.Amount)"
class="form-control text-center"
onblur="shopping.updateAmount(this)"/>
<span class="input-group-btn">
<button class="btn btn-default"
onclick="shopping.clickIncremento(this)">
<span class="glyphicon-plus"></span>
</button>
</span>
</div>
</div>
<div class="col-md-2">
R$ <span class="pull-right" subtotal>
@(item.Amount * item.UnitPrice)
</span>
</div>
</div>
}
</div>
<div class="panel-footer">
<div class="row">
<div class="col-md-10">
<span numero-itens>
TOTAL: @(Model.Items.Count())
Items
</span>
</div>
</div>
</div>
</div>
@section Scripts
{
<script src="~/js/shopping.js"></script>
}
Olá Roberta, tudo bem?
Tem como compartilhar seu código via Dropbox, Google Drive ou Github, para que eu possa dar uma olhada?
No aguardo!
Olá Roberta, tudo bem?
Desculpe a demora, mas estava apanhando com o código, por pensar de forma complexa e o problema era bem simples. Na verdade o problema ocorreu por misturar código em português e inglês.
Na sua classe Startup
a rota padrão está assim: template: "{controller=Request}/{action=Carrossel}/{code?}");
No botão do produto do carrossel tem a seguinte chamada para a rota: asp-route-codigo="@produto.Code"
, mas para essa rota funcionar, deve ter o mesmo nome da rota deve ser igual ao da rota padrão: asp-route-code="@produto.Code"
.
Espero ter ajudado!
Muito obrigada