J'ai créé un simple contrôle personnalisé qui hérite uniquement de la commande code> littéral code> et n'a pas encore aucune extension, le code est vide.
Espace de noms: CustomControls P>
Nom de la classe: littéral: system.web.ui.webcontrols.literal p>
prochaine chose que je fais est d'enregistrer ce contrôle dans l'ASPX code> Aspx comme suit: p>
<%@ Register TagPrefix="web" Namespace="CustomControls" %>
5 Réponses :
Vous pouvez également enregistrer votre contrôle dans web.config si vous souhaitez l'utiliser sur d'autres pages pour le site Web, cela fonctionnera p>
Merci pour la réponse, la chose est - je n'ai pas encore de fichier de montage, et comme je l'ai compris, le contrôle peut être enregistré par TagPrefix et par espacement de noms uniquement, même sans assemblage. ai-je raison ?
Si vous avez créé un projet d'application Web, vous aurez un assemblage, voir: DL. Dropbox.com/u/6561262/Project-settings.png
Voici comment je l'ai fait, étape par étape à partir de rien. Cette première méthode utilise un deuxième projet / montage. Pour la version App_code, faites défiler vers le bas.
Méthode du projet d'application Web forte> p> Mettez en code similaire à ce qui suit pour la défenition de la classe: P>
Ajoutez la balise de registre suivante en haut de votre page ASPX p>
<% @ Enregistrer Assembly = "WebApplication2" noms de noms = "CustomControls" TagPrefix = "Web"%> P> Li>
ol> Si votre nom de montage était différent, changez-le ici. J'ai remarqué que lorsque je l'ai fait dans vb.net, l'espace de noms était webapplication1.Customcontrols au lieu de simplement personnalistes de CustomControls comme si c'était en C #, en quelque sorte impair. P> Ajoutez le nouveau contrôle à votre page: p>
Méthode de projet séparé forte> p> Ajoutez une nouvelle classe au nouveau projet appelé littéral (j'utilise c # afin que mon fichier soit nommé littéral.cs). Vous trouverez ci-dessous mon code super basique que je crois devoir correspondre au code décrit dans la question. P>
Ajoutez une référence au projet CustomControls sur votre site Web. P> Li>
Ajoutez l'enregistrement de montage en haut de votre page ASPX: P>
<% @ Enregistrer Assembly = "CustomControls" Nomspace = "CustomControls" TagPrefix = "Web"%> P> Li>
Ajoutez une nouvelle instance du contrôle à votre page: P>
in app_code méthode forte> p> Ajouter une nouvelle classe au dossier App_code littéral2 (J'utilise c # afin que mon fichier soit nommé littéral2.cs). Vous trouverez ci-dessous mon code super basique que je crois devoir correspondre au code décrit dans la question. Je l'ai appelé 2 afin que vous puissiez l'utiliser conjointement avec la méthode décrite ci-dessus sans obtenir des erreurs de compilation p>
enregistrer l'assemblage / espace de noms pour app_code dans votre page ASPX en ajoutant la ligne suivante au sommet p>
<% @ enregistrez l'espace de noms = "CustomControls" Assembly = "__ Code" TagPrefix = "Web"%> P> Li>
Ajoutez une instance du nouveau contrôle à votre page: p>
J'ai testé cela à l'aide de Visual Studio et tout a fonctionné bien pour moi. P> P>
Merci pour les informations détaillées, cela fonctionne parfaitement dans le projet de site Web. Le problème est avec webapplicationProject dans VS2008.
@MAHES - J'ai mis à jour ma réponse pour inclure les directions d'applications Web (elles sont en haut).
@MAHES - S'il vous plaît laissez-moi savoir si le code que j'ai publié ne fonctionne pas pour vous.
Le problème réside dans votre Il doit devenir Sinon, veuillez nous donner des informations sur la mise en page du projet! P> <% @ enregistrez tagprefix = "Web" espace de noms = "CustomControls"%> code> Tag: il manque le nom de l'assemblage! P>
<% @ enregistrer tagprefix = "WEB" Espace de noms = "CustomControls" Assembly = "YourassEMblyName"%> code>. Si vous avez des difficultés à trouver le nom de montage pour votre classe ici, vous trouverez quelques indications: p>
asp.app_code code> devrait fonctionner li>
ol>
Merci. Même en spécifiant le nom de l'assemblage n'envoie pas le problème avec webapplicationProject dans vs2008
La chose la plus simple à faire est de faire glisser-déposer le littéral.ascx sur la page (si la page est dans la même solution). Si la page est une autre solution, vous pouvez ajouter le contrôle à la boîte à outils VS et glisser-déposer le contrôle sur la page. P>
vous avez oublié l'attribut SRC.
<%@ Register TagPrefix="web" Namespace="CustomControls" Src="PathToYourCustomControl" %>
Que voulez-vous dire exactement par "Créer un nouveau projet"? Fichier -> Nouveau -> Projet -> ... (au moins dans VS 2005), puis, qu'avez-vous cité? Cela pourrait être important (c'est-à-dire choisi d'autres langues -> Visual C # -> Web -> peu importe?). Et vous avez besoin d'une assemblée à un moment donné; La question est de savoir si vous devez le nommer explicitement (et je pense que vous devez avoir à si vous n'utilisez pas de projet «site Web», car vous n'avez pas de dossier App_code).
Où existe votre classe de contrôle personnalisée? Est-ce un fichier de classe dans le projet de site Web ou est-ce dans son propre projet?
Vous avez donc deux projets pour les «CustomControls» et un autre pour le projet Web?
@scherand: Je pense qu'il veut dire qu'il fait cela comme un projet d'application Web et non comme un projet de site Web. Les deux comportent un peu différemment.
Le problème se produit dans webapplicationProject dans vs2008