J'essaye de créer mon premier contrôle de serveur d'ASP.net dérivé d'un panneau. Pour une raison quelconque, je suis incapable d'obtenir la page .aspx pour reconnaître mon balise de serveur même si l'application reconnaît la classe et l'espace de noms de mon contrôle.Comment puis-je obtenir ASP.NET pour reconnaître mon contrôle serveur personnalisé?
Voici les étapes que j'ai utilisé:
1) Je créé une CollapsablePanel de classe que je l'ai placé dans mon répertoire site_code. J'utilise une application Web et non un site Web, donc App_Code n'est pas vraiment disponible pour moi.
Namespace webstation.WebControls
Public Class CollapsablePanel
Inherits System.Web.UI.WebControls.Panel
End Class
End Namespace
2) Dans le fichier .aspx J'ai ajouté <% @ Register TagPrefix = "WebStation" Namespace = "MyApplication.webstation.WebControls" %>
J'ai construit le projet, mais mon le préfixe de tag personnalisé n'apparaît pas. Si je vais juste en avant et que je tape l'éditeur ne jette pas une erreur, cependant la page le fait quand je le publie et essaye d'y accéder. Si j'essaie d'accéder à la classe à partir du codebehind (Imports MyApplication.webstation.WebControls), le contrôle personnalisé apparaît dans IntelliSense, donc je sais que Visual Studio lit les informations de classe dans une certaine mesure.
Qu'est-ce que je fais mal ici? Toutes les pensées sont grandement appréciées.
Mike
Je ne suis pas sûr que je devrais avoir le TagName que je le voudrais pour fournir toutes les classes que je devrai dans l'espace sans avoir à enregistrer chacun individuellement. De plus, la vidéo tutoriel sur ASP.net n'utilise pas non plus de TagName: http://www.asp.net/learn/videos/video-297.aspx – mclark1129
Si vous voulez enregistrer * tout * des classes Dans un espace de nommage donné, je crois que vous devez fournir l'attribut assembly dans votre directive @Register. Donc quelque chose comme Assembly = "MyApplication.webstation.WebControls", en supposant que WebControls est un projet qui génère une DLL en sortie. –
Vous avez raison MIke, vous n'avez pas besoin de spécifier la variable, mais vous devez spécifier l'assemblage. Je l'ai juste essayé et cela a fonctionné après que j'ai ajouté l'attribut d'assembly pour ma DLL –