Delen via


WCF-services maken voor ASP.NET AJAX

Met Microsoft ASP.NET AJAX kunt u snel webpagina's maken met een uitgebreide gebruikerservaring met responsieve en vertrouwde elementen van de gebruikersinterface. ASP.NET AJAX biedt clientscriptbibliotheken waarin ECMAScript-technologieën (JavaScript) en dynamische HTML-technologieën (DHTML) in meerdere browsers worden opgenomen en worden deze geïntegreerd met het ASP.NET 2.0-ontwikkelplatform op de server. Met behulp van ASP.NET AJAX kunt u de gebruikerservaring en de efficiëntie van uw webtoepassingen verbeteren.

ASP.NET AJAX bestaat uit clientscriptbibliotheken en serveronderdelen die zijn geïntegreerd om een robuust ontwikkelframework te bieden. Voor toegang tot een service vanaf een ASP.NET pagina: zodra de service-URL is toegevoegd aan het besturingselement ASP.NET Scriptbeheer op de pagina, kunnen servicebewerkingen worden aangeroepen met behulp van JavaScript-code die precies lijkt op een reguliere JavaScript-functieaanroep.

De meeste WCF-services (Windows Communication Foundation) kunnen worden weergegeven als een service die compatibel is met ASP.NET AJAX door een geschikt ASP.NET AJAX-eindpunt toe te voegen.

Als u Visual Studio gebruikt, kunt u een vooraf gemaakte sjabloon gebruiken voor WCF-services met AJAX-functionaliteit die beschikbaar is in het dialoogvenster Nieuw item toevoegen wanneer u met ASP.NET websites of webtoepassingen werkt.

Als u de Visual Studio-sjablonen niet gebruikt, zijn er twee manieren om een ASP.NET AJAX-eindpunt te maken:

Het webprogrammeermodel dat wordt beschreven in het WCF-web-HTTP-programmeermodeloverzicht kan worden gebruikt met ASP.NET AJAX-services. Specifiek:

  • U kunt de WebGetAttribute en WebInvokeAttribute kenmerken gebruiken om te kiezen tussen HTTP GET- en HTTP POST-woorden. Als deze correct wordt gebruikt, kan dit de prestaties van uw toepassing aanzienlijk verbeteren. Zie Procedure voor meer informatie : Kiezen tussen HTTP POST- en HTTP GET-aanvragen voor ASP.NET AJAX-eindpunten.

  • U kunt de ResponseFormat en ResponseFormat eigenschappen gebruiken om ervoor te zorgen dat uw service XML-gegevens retourneert in plaats van de standaard JavaScript Object Notation (JSON). Dit doet u met het ASP.NET AJAX-framework zorgt ervoor dat de JavaScript-client een XML DOM-object ontvangt.

    Waarschuwing

    Uw bewerking moet het inhoudstype instellen op tekst/xml, zodat dit werkt. Anders ontvangt de JavaScript-client een tekenreeks met de XML in plaats van een XML DOM-object.

    Hier volgt een voorbeeld van een bewerking die XML-gegevens retourneert met het inhoudstype dat op de juiste manier is ingesteld:

    [OperationContract, WebGet(ResponseFormat=WebMessageFormat.Xml)]
    public XElement GetData()
    {
        XElement x;
        //Get some data here...
    
        WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";
        return x;
    }
    
  • Er kunnen geen andere eigenschappen op de WebGetAttribute en WebInvokeAttribute kenmerken worden gewijzigd als compatibiliteit met ASP.NET AJAX is vereist. Andere aspecten van het webprogrammeermodel kunnen worden gebruikt zolang de ASP.NET AJAX-belconventies niet worden geschonden.

Voor meer geavanceerde scenario's is een aantal aanvullende details van AJAX-ondersteuning in WCF vereist:

  • Als u wilt weten hoe gegevens worden overgedragen tussen een AJAX-paginaclient en een WCF-service met behulp van JavaScript, en voor meer informatie over hoe .NET Framework-typen worden toegewezen aan JavaScript-typen, raadpleegt u Ondersteuning voor JSON- en andere indelingen voor gegevensoverdracht.

  • Als u wilt profiteren van ASP.NET functies, zoals verificatie op basis van URL's en toegang tot de ASP.NET sessiegegevens, kunt u de ASP.NET compatibiliteitsmodus inschakelen via configuratie.

AJAX-eindpunten in WCF kunnen zelfs worden gebruikt zonder het ASP.NET AJAX-framework. Hiervoor is een goed begrip nodig van de ondersteuningsarchitectuur van AJAX-ondersteuning in WCF. Zie WCF Web HTTP Programming Object Model voor een bespreking van deze architectuur. Zie de AJAX-service met JSON en XML voor een codevoorbeeld waarin deze benadering wordt gedemonstreerd.

Zie ook