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

Asked

Viewed 908 times

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 the console I get this array and I’d like to spend my controller:

document.querySelectorAll(".produto");

[tr.product,tr.product]

Through the code below I am trying to take 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 he comes null.

    [HttpPost]
    public void SalvarDados(string data) 
    {





    }

1 answer

1

I managed to solve as follows, I am taking my entire table and passing to Json format through the 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 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; }

    }

}

Thank You All.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.