Chiamare un metodo ASP.NET tramite jQuery

30 gennaio 2010 - Fonte: http://codesnippet.altervista.org Lascia il tuo commento »
E' la tua prima volta qui? Allora iscriviti GRATIS ai nostri feeds! 
NOTA BENE: Il Bloggatore ha rilevato dei problemi di collegamento con il blog indicato come fonte originale dell'articolo. Pertanto, al fine di consentire agli utenti di leggere questo articolo, se possibile, viene reso temporaneamente disponibile il post completo.

Chiamare un metodo ASP.NET tramite jQuery e' un post di: CodeSnippet

A volte può tornare utile chiamare velocemente, e direttamente, un metodo lato server tramite Ajax che faccia qualsiasi cosa. Con ASP.NET si può definire all’interno della classe un metodo statico firmato come WebMethod che permette di essere richiamato direttamente dall’esterno tramite una chiamata Ajax.
Ad esempio, prendiamo in considerazione questo metodo

[WebMethod]
public static int Sum(int a, int b)
{
    return a + b;
}

Come vedete, sopra la dichiarazione del metodo c’è la dicitura [WebMethod] esso è statico e pubblico. Si può richiamarlo facilmente attraverso Ajax, ad esempio, utilizzando jQuery, in questo modo.

function Sum()  {
    $.ajax({
        type: "POST",
        url: "Default.aspx/Sum",
        data: "{'a': '10', 'b' : '1'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            alert(msg.d);
        }
    });
}


Come vedete, i parametri alla funzione vengono passati attraverso la sintassi JSON. Oltre a semplici parametri si possono mandare strutture dati complesse, come ad esempio, classi o strutture.
Considerando questa classe

public class Prova
{
    public string a { get; set; }
    public string b { get; set; }
    public Prova()
    {
        this.a = "";
        this.b = "";
    }
    public Prova(string c, string d)
    {
        this.a = c;
        this.b = d;
    }

}

Si può costruire facilmente un metodo che prenda come parametro un oggetto di questo tipo e come valore di ritorno restituisca un oggetto dello stesso tipo ma modificato.

[WebMethod]
    public static Prova DoSomething(Prova prova)
    {
        return new Prova(prova.a.ToUpper(), prova.b.ToUpper());
    }

Questo metodo non fa altro che creare un’istanza di un oggetto che ha come proprietà quelle dell’oggetto passato però con i valori in maiuscolo. Per richiamarlo attraverso JavaScript basta questo

function CallMethod()  {
    $.ajax({
        type: "POST",
        url: "Default.aspx/DoSomething",
        data: '{"prova" : { "a" : "prima stringa", "b" : "seconda stringa" } }',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {
            alert(msg.d.a + " - " + msg.d.b);
        }
    });
}

Il valore passato alla funzione è in formato JSON, e, il valore restituito, pure. A deserializzare l’oggetto ci pensano rispettivamente ASP.NET e jQuery. Di fatti, msg è un oggetto che ha dentro la proprietà d il valore di ritorno (un tipo standard, oppure un tipo complesso e via discorrendo).

Share/Bookmark Post correlati:
  1. jQuery: registrazione in Ajax usando un database XML
  2. href="http://codesnippet.altervista.org/C# 4.0 Il tipo dynamic
  3. href="http://codesnippet.altervista.org/C# Classe Dictionary
href="http://codesnippet.altervista.org/






SEGNALA / INVIA QUESTO POST:  Share
Hai trovato questo articolo interessante? Iscriviti GRATIS ai nostri feeds! 

Lascia un Commento