Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Valor decimal com duas casas decimais

Devido o campo ser "decimal", os valores no campo quantidade no Carrinho estão "1,00". Quando vou passar esse dado para o "PostQuantidade" o input vem com quantidade igual à 100.

Conforme print:

print 1

Print 2

Para contornar utilizei o String.Format

<input type="text" value="@String.Format("{0:0.##}", item.Quantidade)"
                                   class="form-control text-center" />

Para esse problema foi a melhor solução?

Código completo Carrinho.cshtml

@{ 
    ViewData["Title"] = "Carinho";
}

@model CasaDoCodigo.Models.ViewModels.CarrinhoViewModel

<h3>Meu Carrinho</h3>

<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">
                <samp class="pull-right">SubTotal</samp>
            </div>
        </div>
    </div>
    <div class="panel-body">

        @foreach (var item in Model.Itens)
        {
            <div class="row row-center" item-id="@item.Id">
                <div class="col-md-3">
                    <img src="~/images/produtos/small_@(item.Id).jpg" />
                </div>
                <div class="col-md-3">@item.Produto.Nome</div>
                <div class="col-md-2 text-center">R$ @item.PrecoUnitario</div>
                <div class="col-md-2 text-center">
                    <div class="input-group">
                        <samp class="input-group-btn">
                            <button class="btn btn-default">
                                <samp class="glyphicon-minus"></samp>
                            </button>
                        </samp>
                        <span>
                            <input type="text" value="@String.Format("{0:0.##}", item.Quantidade)"
                                   class="form-control text-center" />
                        </span>
                        <samp class="input-group-btn">
                            <button class="btn btn-default" onclick="clickIncremento(this)">
                                <samp class="glyphicon-plus"></samp>
                            </button>
                        </samp>
                    </div>
                </div>
                <div class="col-md-2">
                    <samp class="pull-right">
                        R$ @item.SubTotal
                    </samp>
                </div>
            </div>
        }
    </div>
    <div class="panel-footer">
        <div class="row">
            <div class="col-md-10">Total: @Model.Itens.Count() @(Model.Itens.Count() < 2 ? "Item" : "Itens") </div>
            <div class="col-md-2">
                <samp class="pull-right">R$ @Model.Total</samp>
            </div>
        </div>
    </div>
</div>

<div class="row">
    <div class="col-md-12">
            <a asp-action="Resumo" class="pull-right btn btn-success">Finalizar Pedido</a>
    </div>
</div>

@section Scripts{ 
    <script type="text/javascript">
        function clickIncremento(btn) {
            var linhaDoItem = $(btn).parents('[item-id]');
            var itemId = linhaDoItem.attr('item-id');
            var novaQtde = linhaDoItem.find('input').val();

            var data = {
                Id: itemId,
                Quantidade: novaQtde
            };

            $.ajax({
                url: 'PostQuantidade',
                type: 'Post',
                contentType: 'application/json',
                data: JSON.stringify(data)
            })
        }

    </script>
}
1 resposta
solução!

Olá, Danilo

Muito estranho aparecer uma vírgula e casas decimais na quantidade.

Outra coisa estranha também é que nesta imagem todos os valores na parte direita aparecem com 4 casas decimais, em vez de 2 (como aparece na minha máquina):

https://ibb.co/cmhK0n

Sua máquina tem alguma configuração diferente? Pergunto isso para ter uma pista, porque não estou conseguindo reproduzir o problema aqui. Obrigado!