2
respostas

[Dúvida] Como exibir uma lista de itens

Estou com uma dúvida, criei uma tabela onde ela carrega uma lista de itens, porem abaixo da tabela tem um campo com um botão, quero usar um o método post neste botão que atualizar a lista e vai aparecer na tabela porem sem sair da página.

Não estou sabendo aplicar esse método POST

2 respostas

Olá, Kleber!

Para atualizar a lista de itens sem sair da página utilizando o método POST, você pode utilizar o AJAX. Com ele, é possível enviar uma requisição para o servidor sem precisar recarregar a página inteira.

Você pode criar uma função em JavaScript que envie os dados do formulário para o servidor utilizando o método POST e, em seguida, atualize a tabela com os novos dados recebidos do servidor.

Segue um exemplo básico de como utilizar o AJAX para enviar os dados do formulário para o servidor:

function atualizarLista() {
    var xhr = new XMLHttpRequest();
    xhr.open('POST', 'url_do_servidor');
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.onload = function() {
        if (xhr.status === 200) {
            // Atualiza a tabela com os dados recebidos do servidor
        }
        else {
            console.log('Erro ao atualizar a lista');
        }
    };
    xhr.send('dados_do_formulario');
}

No exemplo acima, substitua "url_do_servidor" pela URL do script que irá receber os dados do formulário e atualizar a lista de itens. E substitua "dados_do_formulario" pelos dados que você quer enviar para o servidor.

Espero ter ajudado e bons estudos!

Estou tentando implementar esse método porem estou recebendo um erro do meu código em C# na parte onde coloco a lógica que irá receber os dados do formulário, por exemplo:

[HttpPost]
public ActionResult AtualizarLista(string campo1, string campo2) {

   // Lógica para atualizar a lista com os dados recebidos

   return Json(lista);
}

Está retornando erro "o nome Json não existe", mesmo eu instalando a biblioteca Newtonsoft.Json, fiquei pesquisando o porquê o motivo do erro, mas não encontrei em nenhum lugar.

OBS: estou usando o .NET 6.0