Helped to pass an array via Ajax (post) to MVC 5 controller

0

I have this code that is generated dynamically by javascript. Simulating a grid

                   <tr class="produto">
                    <td class="info-CodBarras">123</td>
                    <td class="info-Descricao">teste</td>
                    <td class="info-Marca">nike</td>
                    <td class="info-Entrou">11</td>
                    <td class="info-QuantidadeMinima">2</td>
                    <td class="info-LocalEstocado">h9</td>
                    <td class="info-NF">453699</td>
                </tr>
                   <tr class="produto">
                    <td class="info-CodBarras">333</td>
                    <td class="info-Descricao">teste2</td>
                    <td class="info-Marca">Adidas</td>
                    <td class="info-Entrou">112</td>
                    <td class="info-QuantidadeMinima">5</td>
                    <td class="info-LocalEstocado">H5</td>
                    <td class="info-NF">453699</td>
                </tr>

When I debug on the console I get this array and I would like to spend on my controller :

document.querySelectorAll(".produto");

[tr product, tr product]

Through the code below I'm trying to get the data to my controller.

    var formData = document.querySelectorAll(".produto");

    $.ajax({
        type: 'Post',
        dataType: 'json',
        url: '/EntradaEstoque/SalvarDados',
        data: JSON.stringify({ data: formData }),
        contentType: 'application/json; charset=utf-8',
        async: false,
        success: function (data) {
            console.debug(data);
          alert(produtos);
            console.log(data);
        },
        error: function (data) {
            console.debug(data);
        }
    });
}

And in my controller it comes null.

    [HttpPost]
    public void SalvarDados(string data) 
    {





    }
    
asked by anonymous 24.02.2017 / 22:52

1 answer

1

I was able to solve it as follows, I'm getting my whole table and going to Json format through tableToJSON:

My javascript code looks like this:

var jsonObject = {
            "Name": "Produtos",
            "Dados": $('#meuteste').tableToJSON()
        };

        alert(JSON.stringify(jsonObject));

        $.ajax({
            url: '/EntradaEstoque/PopulaNome',
            type: "POST",
            data: JSON.stringify(jsonObject),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        error: function (response) {
            alert('ERRO AO EXECUTAR');
        },
        success: function (response) {
            alert('fUNCIONONOU');
        }
    });

My Controller receiving the data.

public void PopulaNome(PersonModel model)
{
       //var request = JsonConvert.DeserializeObject<Produtos>(data);

       string teste = "";
       teste = "anderson";
}

and my model:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ControleEstoque.Web.Models
{

    public class PersonModel
    {
        public List<rodutos> Dados { get; set; }
        public string Name { get; set; }
    }

    public class rodutos
    {
        public int Id { get; set; }
        public string Descricao { get; set; }
        public string Marca { get; set; }
        public string Modelo { get; set; }
        public Nullable<int> Quantidade { get; set; }
        public string Data_Validade { get; set; }
        public string Local_Estocado { get; set; }
        public string isPatrimonio { get; set; }
        public Nullable<int> Quantidade_Minima { get; set; }
        public string Fornecedor { get; set; }
        public int IdFornecedor { get; set; }
        public Nullable<int> Nota_Fiscal { get; set; }
        public string Cod_Barras { get; set; }
        public string Status { get; set; }
        public string UnidadeMedida { get; set; }

        public int Faltou { get; set; }
        public Nullable<int> Entrou { get; set; }


        public decimal Valor { get; set; }

        public decimal ValorUnitario { get; set; }

        public int Id_Orcamento_Prd { get; set; }

        public string DataCadastro { get; set; }

    }

}

Thanks to everyone.

    
25.02.2017 / 07:04