Olá pessoal sejam bem vindos a mais um artigo sobre Ajax utilizando jQuery, no artigo de hoje vou ensinar como centralizar as informações e métodos no WebService e posteriormente consumir com jQuery.

O motivo básico do porque devemos trabalhar com webservice seria organização e centralização dos métodos da nossa camada de negocio em forma de serviço.

O primeiro passo é criar um projeto do tipo web no visual Studio, criar uma pasta com nome Service e adicionar um item “WebService.asmx” coloque o nome de AjaxService.

Depois que criar deixe a linha System.Web.Script.Service.ScriptService descomentada e adicione uma nova namespace System.Web.Script.Services.

Agora vamos criar uma classe dentro do nosso serviço para auxiliar nos métodos que retorna objeto.


public class AjaxMessage
{
    public AjaxMessage(string pMessage, string pDescription)
    {
        this.Message = pMessage; 
        this.Description = pDescription;
    }

    public string Message { get; set; }
    public string Description { get; set; }
}

Vamos criar três métodos o primeiro retorna path do caminho web do nosso projeto o segundo retorna o caminho do nosso serviço o último retorna um objeto AjaxMessage.


[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// To allow this Web Service to be called from script, 
using ASP.NET AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]
public class AjaxService : System.Web.Services.WebService
{
    
    // Get path web to service
    public static string GetUrl()
    {
        return string.Format("{0}/Service/AjaxService.asmx", 
        GetHost());
    }

    // Get path web in application
    public static string GetHost()
    {
        string hostUrl = HttpContext.Current.Request.Url.Scheme 
        + "://" + HttpContext.Current.Request.Url.Authority 
        + HttpContext.Current.Request.ApplicationPath;
        if (hostUrl.Substring(hostUrl.Length - 1, 1) == "/")
        {
            hostUrl = hostUrl.Substring(0, hostUrl.Length - 1);
        }

        return hostUrl;
    }

    [WebMethod]
    [ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet 
    = true, XmlSerializeString = false)]
    public AjaxMessage GetMensage()
    {
        return new AjaxMessage("Sucesso", "Consulta realizada 
        com sucesso no webservice");
    }

}

Vamos criar nossas funções javascript para consumir o serviço como mostra abaixo e lembre-se de adicionar no projeto biblioteca do jQuery , acrescente no começo da nossa página abaixo da tag Page a namespace do nosso serviço.


<%@ Import Namespace="AjaxWebService.Service" %>

Após importa a namespace do serviço acrescente as funções JavaScript.


<script src="Script/jquery.1.4.2.min.js" type="text/javascript"></script>
    <script type="text/javascript">
 
        function RequestService() {
            $.ajax({
                type: "GET",
                url: "<%= AjaxService.GetUrl() %>/GetMensage",
                contentType: "application/json; charset=utf-8",
                data: "{}",
                dataType: "json",
                success: function(data) { SucessCallback(data.d); },
                error: function(data) { FailureCallBack(data); }
            });
        }
 
        function SucessCallback(result) {
            $('p').html('Resultado: ' + result.Message 
            + ' <br /> Descrição: ' + result.Description);
        }
 
        function FailureCallBack(result) {
            alert(result.status + ' ' + result.statusText);
        }
       
</script>

Agora vamos adicionar abaixo da tag form da nossa página Default o HTML abaixo:


<a onclick="RequestService()" href="javascript:void(0)">Recuperar informações</a>
<p></p>

Agora vamos executar o projeto e clicar no link, após clicar no link se tiver sucesso na consulta do WebService vai aparecer á mensagem na tela dentro da tag “p” com as informações do nosso método.

Espero que tenham gostado até a próxima.