I'm trying to pass a table via JSON.stringify, in ajax, it's receiving the data perfectly, but I can not get into the controller. I'm passing this way:
function enviarDados(produtos) {
$.ajax({
method: "POST",
url: '@Url.Action("Novo1","produtos")',
contentType: 'application/json',
dataType: 'json',
data: JSON.stringify(produtos)
});
}
But in the controller, I always get the list null, I've already tried it in several ways, and none of it gets the values, it always comes in null.
[HttpPost]
public IActionResult Novo1(List<PedidosProdutosF> produtos, NovoViewModel model)
{
}
I can not pass JSON.stringify to controller in .NET CORE?
EDIT
Class PedidosProdutosF
:
[Key]
public int Id { get; set; }
public int ProdutoID { get; set; }
public Produto Produto { get; set; }
public string CodigoProduto { get; set; }
[Display(Name = "Quantidade")]
public int Qtd { get; set; }
[Display(Name = "Preço Unitário")]
public float PrecoUnitario { get; set; }
[Display(Name = "Desconto em %")]
public float DescontoP { get; set; }
[Display(Name = "Desconto em R$")]
public float DescontoV { get; set; }
public int ICMS { get; set; }
public float IPI { get; set; }
public float ISS { get; set; }
[Display(Name = "Data da Entrega")]
public DateTime DataEntrega { get; set; }
public int QtdFalta { get; set; }
public float Total { get; set; }
public float Aliquota { get; set; }
public float VICMS { get; set; }
public float VIPI { get; set; }
public float VISS { get; set; }
public int ? PedidoFornecedorId { get; set; }
public PedidoFornecedor PedidoFornecedor { get; set; }
I made a console.log(JSON.stringify(produtos));
It returns me the data, as follows:
[
{
"CodigoProduto":"P00062",
"DescricaoProduto":"Descrição 62",
"Qtd":"1",
"PrecoCusto":"29,00",
"DescontoP":"0,00",
"DescontoV":"0,00",
"Total":"29,00",
"ICMS":"1",
"AliquotaICMS":"0,00",
"vICMS":"0,00",
"ISS":"0,00",
"vISS":"0,00",
"IPI":"0,00",
"vIPI":"0,00",
"Qtdfalta":"",
"ProdutoID":""
}
]
Here is how I pass the table data to ajax, to be received in the controller:
$("#btn-enviar").click(function () {
var produtos = [];
$('.item').each(function () {
var entidade = {
CodigoProduto: $(this).children()[0].innerText,
DescricaoProduto: $(this).children()[1].innerText,
Qtd: $(this).children()[2].innerText,
PrecoCusto: $(this).children()[3].innerText,
DescontoP: $(this).children()[4].innerText,
DescontoV: $(this).children()[5].innerText,
Total: $(this).children()[6].innerText,
ICMS: $(this).children()[7].innerText,
AliquotaICMS: $(this).children()[8].innerText,
vICMS: $(this).children()[9].innerText,
ISS: $(this).children()[10].innerText,
vISS: $(this).children()[11].innerText,
IPI: $(this).children()[12].innerText,
vIPI: $(this).children()[13].innerText,
Qtdfalta: $(this).children()[15].innerText,
ProdutoID: $(this).children()[16].innerText,
};
produtos.push(entidade);
});
enviarDados(produtos);
});