Disparando uma requisição JQuery Ajax que fornece como retorno conteúdo HTML gerado pela url acessado C#(CSHarp) ASP.NET MVC.
Postado em : 01/08/2021
O que significa Ajax
AJAX significa Asynchronous JavaScript and XML, ou JavaScript e XML Assíncronos, em bom português. Ele é um conjunto de técnicas de desenvolvimento voltado para a web que permite que aplicações trabalhem de modo assíncrono, processando qualquer requisição ao servidor em segundo plano.
Como funciona uma Requisição Ajax
- Uma requisição HTTP é enviada do navegador para o servidor.
- O servidor recebe a requisição e busca os dados.
- O servidor envia os dados requisitados para o navegador.
- O navegador recebe os dados e recarrega a página para fazer com que apareçam.
Nosso primeiro passo é mostra a sintaxe completa do Ajax que pode ser visto abaixo.
Sintaxe Completa
var data="abc123"; $.ajax({ type: "GET", url: "XYZ", data: { "data":data, }, dataType: "html" contentType: "application/json", / / Se recebeu uma resposta do servidor success: function( datas, textStatus, jqXHR) { }, // Se não houve resposta do servidor error: function(jqXHR, textStatus, errorThrown){ }, // capturar a solicitação antes de ser enviada ao servidor beforeSend: function(jqXHR, settings){ }, // Isso é chamado depois que as funções de resposta ou erro são concluídas para que possamos tomar alguma ação complete: function(jqXHR, textStatus){ } });
Vamos destrinchando tudo aos poucos e ao final desta postagem você vai ter um exemplo completo de como utilizar uma solicitação JQuery Ajax em ASP.NET MVC, mas neste momento vamos passo a passo.
A segurança é muito importante e por isso é necessário garantir que que a chamada de nosso link realmente veio de nossa pagina, para isso, para isso sugiro que leia nossa postagem sobre Ataque CSRF - (Cross-Site Request Forgery), para entender um pouco mais sobre AntiForgeryToken, isso vai dar uma garantia de que nosso link só vai ser carregado caso seja solicitado por nossa requisição.
Para isso dentro de seu código HTM entre a tag deve constar o comando Razor @Html.AntiForgeryToken(), caso seu código não pretenda ter um form valido, mesmo assim você pode simplesmente colocar o comando dentro da tag em seu código, conforme o exemplo abaixo.
<form> @Html.AntiForgeryToken() </form>
Você pode recuperar o valor deste token facilmente em sua função JavaScript mais tarde com o comando a seguir.
Var token = $('[name=__RequestVerificationToken]').val();
Agora que colocamos as devidas restrições de segurança, vamos na pratica colocar um exemplo de requisição Ajax pratica e funcional.
function consultaUnidade() { // Captura a área que vai receber os dados area = $("#area-dados"); // Coloca a mensagem aguardando na área que vai receber os dados area.html("Aguarde..."); // Captura as variáveis var token = $('[name=__RequestVerificationToken]').val(); var idunidade = $("#cb-unidade").val() var idclasse = $("#cb-classe").val() // Monta os parâmetros var formdata = new FormData(); formdata.append('__RequestVerificationToken', token); formdata.append('idunidade', idunidade); formdata.append('idclasse', idclasse); // Solicitação Ajax $.ajax({ type: 'Post', url: '@Url.Action("_CarregaConsultaUnidade", "Home", new { Area = "Escolas"})', data: formdata, processData: false, contentType: false, dataType: "html", success: function (retorno) { // Carrega os dados retornados do servidor na área que vai receber os dados area.html(retorno); } }); }
Agora para completar em nosso Controller a View que recebe esta solicitação, para fecha a matéria, e não deixar duvidas.
[HttpPost] [ValidateAntiForgeryToken] public PartialViewResult _ConsultaAlunos(Int32 idunidade, Int32 idclasse) { daoUnidde daounidades = new daoUnidade(); Classes classe = daounidades.ConsutaClasse(idunidade, idclasse); ViewBag.Classes = classe; return PartialView(); }
Mais uma vez espero ter ajudado, deixe seu comentário ele é muito importante, visite nossos patrocinadores eles ajudam a manter o site, a postagem sobre Ataque CSRF - (Cross-Site Request Forgery) estava logo acima mas caso não tenha encontrado e queira visitar vou deixar o link abaixo, obrigado.
Links Relacionados
- ActionVerbs lidando com diferentes tipos de solicitações Http em Asp.Net MVC.
- Configurar tempo de uma sessão em Asp.Net MVC
- Consulta SQLServer com paginação
- Executando uma função JQuery após o carregamento total da página.
- Mascaras com JQuery-Mask
- Padrão MVC
- Passar parâmetros jquery para Url.Action ASP.NET MVC
- Pegando Tamanho em Pixels de um Elemento por JavaScript
- Recuperar o nome do Controller e o nome da Action em nossa View(Página CSHTML) #Asp.Net MVC.