La majorité des services web sous ASP.NET sont implémentés dans des fichiers Services web (*.asmx). On peut ajouter un tel fichier à un projet ASP.NET Ajax standard.
public class Employe
{
public int Id { get; set; }
public string Prenom { get; set; }
public string Nom { get; set; }
}
Ajouter au projet un service web :
/// <summary>
/// Description résumée de Employes
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// Pour autoriser l'appel de ce service Web depuis un script à l'aide d'ASP.NET AJAX,
// supprimez les marques de commentaire de la ligne suivante.
// [System.Web.Script.Services.ScriptService]
public class Employes : System.Web.Services.WebService
{
public List<Employe> GetListeEmployes(CustomDataContext db)
{
return (from r in db.Employes
select r).ToList();
}
[WebMethod]
public Employe[] GetEmployesWebMethod(){{:web:toolbar_ajax_sm.gif|}}
{
List<Employe> employes;
using (CustomDataContext db = new CustomDataContext())
{
employes = GetListeEmployes(db);
}
return employes.ToArray();
}
}
Si ce n'est pas déjà fait dans le formulaire web, ajouter un ScriptManager :
<asp:ScriptManager ID="ScriptManager1" runat="server" > <Services> <asp:ServiceReference Path="EmployeService.asmx" /> </Services> </asp:ScriptManager>
C'est possible d'éditer les services du ScriptManager en accédant à ses propriétés Services qui est une collection.
[System.Web.Script.Services.ScriptService]
[System.Web.Services.WebMethod()] [System.Web.Script.Services.ScriptMethod()] public static void WebMethode(int id) { }
ScriptManager<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" />
function AppelerWebMethode(id) { PageMethods.WebMethode(id); }