2010-08-08 5 views
2

J'ai une bibliothèque de classe personnalisée qui effectue la validation. Je veux ouvrir cette classe pour une utilisation dans Javascript. Je comprends que je peux facilement y parvenir en utilisant WebServices/WCF ou en créant une fonction sur ma page avec l'attribut WebMethod, mais ce serait bien de ne pas avoir à tout configurer pour chaque projet.Comment accéder à un WebMethod dans la bibliothèque de classes?

Idéalement, je voudrais simplement ajouter l'attribut WebMethod à mes méthodes de bibliothèque de classes, puis les appeler en utilisant Javascript.

Répondre

2

Malheureusement, vous devrez exposer un point final que votre fonction Javascript peut voir. Dans ASP.NET, cela se fait le plus facilement avec l'attribut de méthode web que vous avez rencontré. Cependant, cette méthode requires two parts l'extrémité et le code réel. Si vous y réfléchissez, cela a du sens. Javascript n'a aucun moyen de parler directement à un assembly .NET compilé. Il doit passer par une interface agnostique de type. Une chose que vous pouvez faire, et vous pouvez le faire, est de générer le fichier .asmx avec la méthode web et ensuite avoir cet appel votre méthode de bibliothèque de classes. Cela ne vous empêchera pas d'avoir le point de terminaison .asmx, mais empêchera toute duplication du code réel. Je n'ai pas beaucoup d'expérience avec WCF, mais je crois que vous aurez toujours besoin d'un point de terminaison quelconque pour interfacer entre Javascript et C#.

+0

Je pensais autant, mais j'avais besoin d'être sûr. – Matt

0

L'attribut WebMethod doit être utilisé à partir d'une méthode au niveau de la page. Ce n'est pas trop compliqué si vous configurez votre bibliothèque correctement. Un WebMethod est juste une méthode statique, mais si vous envisagez de l'utiliser dans plusieurs pages, alors vous voulez vraiment en faire un service WCF. Aucun d'entre eux ne devrait être difficile et les frais généraux sont minimes.

Vous pouvez également utiliser une classe Page de base héritée de toutes vos autres pages et y définir votre WebMethod. Cette classe pourrait vivre dans la bibliothèque de classe quelque part et être utilisée dans plusieurs projets.

Questions connexes