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:
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>
}