Fin dai tempi di Atlas mi sono preso la briga di inserire, in un paio di progetti, alcune delle funzionalità offerte. In particolar modo UpdatePanel e PageMethods. Sono passato da Atlas, alle varie beta delle ASP.NET Ajax Extension, fino ad arrivare alla RC e alla RTM. Ogni versione ha sempre modificato qualcosina dei PageMethods. Immagininavo però che sostituire l'RC con l'RTM fosse una cosa automatica. Disinstallare la vecchia versione e installare quella nuova. Facendo così, con mio estremo terrore, ho riscontrato che ancora una volta i PageMethods non andavano... L'errore era sempre il classico "PageMethods is not defined".
Fortunatamente la risoluzione del problema è abbastanza semplice. Occorre abilitare esplicitamente i PageMethods nello scriptmanager. Riporto un piccolo esempio:
<asp:ScriptManager ID="scriptmanager1" EnablePageMethods="true" runat="Server" />
Fatto ciò tutto torna a funzionare come prima. Anzi meglio. Non so se sia una modifica introdotta dalla RC o dalla RTM, ma adesso i nostri "PageMethods" possono tornare anche nel codebehind come nelle vecchie versioni. L'importante è che siano shared (statici) e abbiano gli opportuni attributi (System.Web.Script.Services.ScriptMethod, System.Web.Services.WebMethod).