2009-04-16 3 views
0

J'utilise ASP.Net AJAX et j'ai créé un service web dans mon application. Le service a une méthode (AddWatchedFolder) et il prend un Name.Space.WatchedFolder comme seul paramètre. Le problème est, ASP.Net AJAX ne génère pas un type javascript pour Name.Space.WatchedFolder même si j'ai ajouté le service à un ScriptManager.ASP.Net AJAX ne crée pas de type Javascript

Je peux changer le type de paramètre en une chaîne et cela fonctionne très bien, mais je ne peux pas utiliser cet objet métier en tant que paramètre car je ne peux pas le créer à partir de javascript.

La classe (Name.Space.WatchedFolder) existe dans un projet de bibliothèque de classes distinct si cela fait une différence.

Des idées pour que cela fonctionne?

Répondre

0

Voici comment ASP.NET Ajax fonctionne. Vous pouvez essayer de passer votre objet en tant qu'objet javascript anonyme. Le sérialiseur JavaScript va très probablement réussir à analyser votre objet personnalisé à partir du JSON fourni. Voici un code:

ASMX:

[WebMethod] 
public void MyMethod(MyObject arg) 
{ 
    return arg.Property1 + arg.Property2; 
} 

JavaScript:

var arg = { Property1 : "One", Property2 : "Two" }; 
MyNameSpace.MyService.MyMethod(arg); 
+0

Pourquoi faut-il travailler de cette façon? Est-ce parce que la classe est dans un autre projet? Il crée des types Javascript pour les choses qui sont dans le même projet. –

+0

Il devrait créer une classe uniquement pour le service Web. Crée-t-il des classes pour les paramètres définis dans le même projet? –

+0

Oui. Il a toujours créé des types pour les paramètres, mais cette fois ce n'est pas ce que je suppose, c'est parce qu'ils sont définis dans un autre projet. –

Questions connexes