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); }