2010-06-10 8 views
3

Je travaille sur un composant WebPart Visual qui nécessite la création d'un contrôle personnalisé. Je suis en train de ajouter un contrôle personnalisé au même ensemble comme composant Visual Web Part et l'enregistrement de contrôle comme:Contrôle personnalisé Même assemblage - Visual Web Part

<%@ Register TagPrefix="cus" Namespace="SomeCustomControlNameSpace" %> 

Quand je suis en train d'accéder à ce son erreur d'exécution de lancer:

tag serveur inconnu « cus : ControlName '.

Dois-je créer une entrée Web.Config pour cela?

Des idées?

+0

Avez-vous résolu ceci?J'ai le même problème ... – Andrew

Répondre

1

Vous devez indiquer quel assemblage doit être consulté.

<%@ Register TagPrefix="cus" Namespace="SomeCustomControlNameSpace" Assembly="SomeCustomControlAssembly" %> 
+0

Merci. Mais l'attribut Assembly ne me manque pas, mais je l'ai supprimé car le fichier de classe pour customControl est dans le même assembly que WebPart. Je ne peux pas spécifier le nom de l'assembly ou le compilateur commencera à me crier dessus. – FullyManaged

1

Peut-être que vous avez déjà essayé cela (et sont fatigués de l'entendre), mais je suis devenu ce scénario au travail en utilisant l'étiquette d'assemblage pour se référencer. Mon projet est une application Web, ce qui peut ne pas fonctionner pour un projet de site Web. Quoi qu'il en soit, voici mes propriétés d'application Web:

Web Application Properties. Assembly name is: Example.Web

Sur ma page, dans le même ensemble, je la directive Registre suivante:

<%@ Register TagPrefix="jb" Namespace="CustomControlNameSpace" assembly="Example.Web" %> 

Comme une note de côté, voici ce que Microsoft says about it (qui ne mentionne pas ce que j'ai essayé ci-dessus):

Lorsque vous utilisez la directive @ Register pour référencer un contrôle, vous pouvez p dentelle le code pour le contrôle dans les endroits suivants:

  • code source dans dossier App_Code de l'application, où il sera compilé dynamiquement au moment de l'exécution. Cette est une option pratique pendant le développement . Si vous choisissez cette option , vous n'utilisez pas l'attribut d'assembly dans la directive @ Register.

  • En tant qu'ensemble compilé dans le dossier Bin de l'application . Il s'agit d'une option commune pour les applications Web déployées.

  • En tant qu'ensemble compilé et signé dans le cache d'assembly global (GAC). Cette est une option courante si vous voulez partager un contrôle compilé parmi plusieurs applications. Vous pouvez référencer un contrôle dans le GAC par en affectant une chaîne d'identification à l'attribut d'assembly . La chaîne spécifie les détails requis au sujet du contrôle , y compris son nom de type qualifié complet , sa version, son jeton de clé publique et sa culture.

Questions connexes