ASP .NET - Chamando um WebMethod via jQuery AJAX - I


 Hoje eu vou mostrar como podemos chamar um WebMethod ASP .NET usando jQuery AJAX.

Você já deve saber que a biblioteca jQuery torna muito fácil realizar requisições AJAX e que os WebMethods são métodos iguais aos de um WebService sem a vinculação ao arquivo .ASMX.

Os Web services podem ser vistos como aplicações modulares que podem ser descritas, publicadas, localizadas e invocadas sobre o protocolo padrão da Internet usando mensagens XML padronizadas; as aplicações usam como base o XML SOAP para troca de informação onde o ambiente de distribuição das aplicações postadas na web são descritas através do WSDL - Web Service Description Language e são registrados com um registro de serviço privado ou público usando o padrão UDDI, tal como http://uddi.microsoft.com ou http://uddi.ibm.com.

Com jQuery podemos chamar métodos ASP .NET do lado do servidor a partir do cliente sem qualquer PostBack. Na verdade, é feita uma chamada AJAX para o servidor que nos permite chamar o método do lado do servidor.

A sintaxe básica do método jQuery AJAX para chamar um webmethod é dada a seguir:

$.ajax ({
        type : "POST",
        url : "Default.aspx/NomeMetodo",
        data : '{param: "valor" }',
        contentType : "application/json: charset=utf-8",
        dataType : "json",
        success: OnSucdess,
});

Neste artigo vou criar um WebMethod em uma página ASP .NET e fazer a chamada do mesmo usando jQuery Ajax.

Recursos Usados:

Criando o projeto no Visual Studio 2013 Express for web

Abra o VS Express 2013 for web e clique em New Web Site;

A seguir selecione a linguagem Visual Basic e o template ASP .NET Empty Web Site;

Informe o nome AspNet_WebMethod_jQuery e clique no botão OK;

No menu WEBSITE clique em Add New Item;

Selecione o template Web Form e informe o nome Default.aspx e clique no botão Add para incluir o Web Form Default.aspx ao projeto.

Agora vamos incluir uma referência à biblioteca jQuery usando o Nuget.

No menu TOOLS  clique em Library Package Manager e a seguir em Manage Nuget Packages for Solution;

A seguir informe jQuery na caixa de consulta e depois clique em jQuey para instalar a biblioteca no projeto:

Agora abra o arquivo code-behind Default.aspx.vb e defina o código abaixo que criar o WebMethod GetJogadores que retorna o nome e time de alguns jogadores famosos:

Imports System.Web.Services
Partial Class _Default
    Inherits System.Web.UI.Page
    <WebMethod> _
    Public Shared Function GetJogadores() As Jogador()
        Dim jogadores As Jogador() = New Jogador(3) {}
        jogadores(0) = New Jogador()
        jogadores(0).Nome = "Neymar Junior"
        jogadores(0).Time = "Barcelona"
        jogadores(1) = New Jogador()
        jogadores(1).Nome = "Cristiano Ronaldo"
        jogadores(1).Time = "Real Madrid"
        jogadores(2) = New Jogador()
        jogadores(2).Nome = "Leonel Messi"
        jogadores(2).Time = "Barcelona"
        jogadores(3) = New Jogador()
        jogadores(3).Nome = "Zlatan Ibrahimović"
        jogadores(3).Time = "Paris Saint-German"
        jogadores(4) = New Jogador()
        jogadores(4).Nome = "Mario Balotelli"
        jogadores(4).Time = "Liverpool"
        Return jogadores
    End Function
    Public Class Jogador
        Public Property Nome As String
        Public Property Time As String
    End Class
End Class

Agora  no arquivo Default.aspx inclua a referência a biblioteca jQuery e o script jQuery conforme abaixo:

Vamos entender o código :

Linha 06: importação da biblioteca JQuery : <script src="Scripts/jquery-2.1.1.min.js"></script>
Linhas 09 e 23
: o código entre essas linhas será executado assim que o documento for carregado;
Linhas 10 e 22: o código entre essas linhas será atribuído ao evento onclick do botão btnJogadores;
Linha 12: tipo de requisição: Get ou Post. Para acessar um WebMethod tem que ser do tipo POST;
Linha 13: caminho para acessar o WebMethod
"Default.aspx/GetJogadores",
Linha 14
: tipo de dados que será enviado ao WebMethod;
Linha 15: dados enviados ao WebMethod. Em JSON, "{}" significa um objeto vazio. (Neste exemplo nosso WebMethod não tem parâmetros de entrada )
Linha 16: o tipo de dados do retorno do WebMethod, que no nosso exemplo também é JSON;
Linha 17 : função que será executada caso a requisição AJAX obtenha sucesso; A função OnSuccess() é definida das linhas 24 a 29;
Linhas 18 a 20 :  função que será executada caso a requisição AJax falhe;
Linhas 37 a 39 : <div> painel onde será exibido o resultado da execução do método;

Agora executando o projeto teremos a página Default.aspx apresentada.

Na continuação deste artigo irei mostrar um exemplo mais útil onde iremos acessar dados de um banco de dados, e usar uma stored procedure para incluir dados em uma tabela. Vou mostrar como podemos chamar um webmethod passando parâmetros.

Pegue o projeto completo aqui: AspNet_WebMethod_jQuery.zip

João 6:51 Eu sou o pão vivo (Jesus) que desceu do céu; se alguém comer deste pão, viverá para sempre; e o pão que eu darei pela vida do mundo é a minha carne.

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

Quer aprender os conceitos da Programação Orientada a objetos ?

Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?

  Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter

Referências:


José Carlos Macoratti