0
I have this código, that he catches the id selected from table:
 $("#tablepesquisaclientes tr").each(function (index, el) {
var $linha = $(el);
var checked = $linha.find('.checked:checked').length;
if (checked === 1) {
    console.log($linha.find('td').eq(1).text());
}
});
But I need to create a list, to receive on controller, I have already created the class, and I have stated in ViewModel
public class ListaContrato {
    public int Id { get; set; }
}
 public IList<ListaContrato> ListaContrato { get; set; }
This is the html of my table
<table class="table table-responsive table-hover table-striped" id="tablepesquisaclientes" style="font-size:12px;">
    <thead>
        <tr>
            <th></th>
            <th>Nº Contrato</th>
            <th>Cliente</th>
            <th>Valor</th>
        </tr>
    </thead>
    <tbody>
        @foreach (var item in Model.Contratos)
        {
            <tr>
                <td><input type="checkbox" class="checked"/></td>
                <td>@item.Id</td>
                <td>@item.Cliente.Nome</td>
                <td>@item.Valor.ToString("N2")</td>
                <td style="display:none;">@item.PedidoVenda.EmpresaID</td>
            </tr>
        }
    </tbody>
</table>
How can I pass the selected values to the controller ? Is there any way to go straight to the controller creating a list, or just going through ajax ?
This is the part of controller, I wanted to get it all for ViewModel if you had any way.
[HttpPost]
    public async Task<IActionResult> EnvioLote(EnviarLoteViewModel model)
I tried to create also according to Leonardo’s reply:
  public int[] Ids { get; set; }
And then on click of button doing so:
 var enviarLote = { Ids: [] };
            $("#tablepesquisaclientes tr").each(function (index, el) {
                var $linha = $(el);
                var checked = $linha.find('.checked:checked').length;
                if (checked === 1) {
                    var id = $linha.find('td').eq(1).text();
                    enviarLote.Ids.push(id);
                    console.log($linha.find('td').eq(1).text());
                }
            });
            console.table(enviarLote);
            $.post("/NFSe/EnvioLote", enviarLote)
                .done(function () {
                    console.log('postado');
                })
                .fail(function (data) {
                    console.log(data);
                    console.log('erro');
                })
                .always(function (data) {
                    console.log(data);
                    console.log('fim');
                });
But in the controller the Ids continue null.
To send to the controller, either you submit a form or do an Ajax.
– Sam
Currently I am doing by
submit, but how can I pass this list I will create when selecting thecheckbox?– Mariana
Put a
namein array checkboxes, type:name="ids[]"... and also put avaluewith the ids:value="@item.Id"... thus, when you submit, you will receive the values of checkboxes marked in the form of an array calledids.– Sam
@Sam this way I could not, or I did not understand the concept, I tried to pass with the
idsand also with the list I createdListaContratos[]but it does not pass any kind of value.– Mariana