2009-11-06 6 views
2

Comment faire? Je suis complètement nouveau à cela et souhaite commencer à l'apprendre. Je vais avoir une structure arborescente, probablement un arbre html/Javascript qui devra être sauvegardé dans la base de données via les services Web.Consommation de Web Service depuis javascript dans .net page

Quel est le moyen le plus efficace de le faire avec ASP .net web services + asp.net 3.5?

MISE À JOUR: merci pour toutes les réponses, je manque encore quelques pièces à ce scénario, à savoir: 1) lorsque le nœud doit être ajouté à l'arbre, un utilisateur reçoit un pop-up, où quelques-uns les informations seront entrées, enregistrées dans la base de données et un code entier renvoyé par la base de données. À son retour, j'ai besoin de faire un peu de logique, et d'insérer un nœud (ou plusieurs) dans le nœud sélectionné. Et ainsi de suite, etc. Donc, d'après ce que je comprends, cette logique (la viande du code) devra être exécutée sur le client, dans mon code Javascript. 2) Qu'est-ce qui déclencherait l'actualisation de l'arborescence après la fermeture de la fenêtre contextuelle? 3) Où est .net avec cette image? D'après ce que je comprends, aucun codage côté serveur n'est effectué ici (à l'exception des services Web). Est-ce la direction générale de nos jours, éloignez-vous du codage côté serveur avec les contrôles .net et utilisez une lib Javascript de choix + services web?

Merci à tous.

Répondre

4

Vous pouvez y parvenir en utilisant les appels ASP.net Ajax. Sur le côté serveur vous créez un webservice (WCF ou ASMX) ayant l'attribut ScriptService:

namespace MyCompany.Project.Services 
{ 
    [WebService(Namespace = "http://tempuri.org/")] 
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    [System.Web.Script.Services.ScriptService] 
    public class MyWebServiceClass : System.Web.Services.WebService 
    { 

     [WebMethod] 
     public string GreetFromServer(string name) 
     { 
      return "Hello, " + name; 
     } 
    } 
} 

Sur la page, vous ajoutez un ScriptManager le référencement de votre webservice.

<asp:ScriptManager id="scriptManager" runat="server"> 
    <Services> 
     <asp:ServiceReference Path="~/Services/MyWebServiceClass"/> 
    </Services> 
</asp:ScriptManager> 

ensuite sur le côté client (JavaScript):

function invokeService(){ 
    MyCompany.Project.Services.MyWebServiceClass.GreetFromServer("Juri", onSuccess, onFailure); 
} 

function onSuccess(result){ 
    //check if result different null etc..It will be in JSON format, so deserialize 
    //use result 
} 

function onFailure(){ 
    //handle errors 
} 

Cela devrait juste être un indice sur la façon de créer un service et y accéder à partir de JavaScript. Je l'ai surtout écrit hors de ma tête maintenant, sans le vérifier. Un indice: utilisez Firebug! C'est vraiment génial pour vérifier les données qui sont envoyées entre votre code client JavaScript et le service web côté serveur.

J'ai just written a blog post avec un exemple téléchargeable qui décrit la communication du client-serveur en utilisant ASMX ainsi que les services Web WCF.

+0

Je viens d'ajouter un lien vers un article de blog que j'ai écrit à propos de ce problème. – Juri

0

Je vous suggère d'utiliser jquery du côté client dans votre arbre html/Javascript. Voici un tutoriel pour vous aider à démarrer sur l'utilisation jquery avec asp.net

http://dotnetslackers.com/articles/ajax/Using-jQuery-with-ASP-NET.aspx

+0

Oui, mais puis-je consommer des services Web asp.net à partir de Jquery? Je n'ai trouvé qu'une ressource sur la façon de le faire: http://geekswithblogs.net/shahed/archive/2009/07/11/133402.aspx et cela ressemble à une douleur.Des expériences avec ça? – sarsnake

1

Encosia.com a tout ce dont vous avez besoin:

Using jQuery to Consume ASP.NET JSON Web Services

+0

merci, je ne suis toujours pas clair sur cette partie: sur le formulaire soumettre, quelqu'un va devoir écrire le code sur le client pour recueillir ces données et l'envoyer via Ajax à une méthode de serveur. D'après ce que j'ai entendu, Jquery ne joue pas bien avec Asp.net. Est-ce de vieilles nouvelles? Comment vais-je déclencher le rafraîchissement de la page (appelez la méthode serveur via Ajax) avec Jquery? aucun de ces liens ne me dit comment faire ça. – sarsnake

+0

Jquery jouera très bien avec asp.net http://weblogs.asp.net/scottgu/archive/2008/09/28/jquery-and-microsoft.aspx –

Questions connexes