2010-03-31 3 views
2

J'essaie d'utiliser ResolveUrl() pour définir certains chemins dans le code derrière un contrôle utilisateur ASP.NET personnalisé. Le contrôle utilisateur contient un menu de navigation. Je le charge sur une page qui charge une page maître.ResolveURL ne résout pas dans un contrôle utilisateur

Lorsque j'appelle ResolveUrl ("~") dans mon contrôle utilisateur, il renvoie "~" au lieu de la racine du site. Quand je l'appelle dans une page, j'obtiens le chemin racine comme prévu. J'ai passé avec le débogueur et confirmé, ResolveUrl ("~") renvoie "~" dans mon code de contrôle utilisateur derrière.

Existe-t-il une autre façon d'appeler la fonction dans mon code de contrôle utilisateur pour obtenir le chemin racine du site?

+1

Pouvez-vous poster le code comment vous l'utilisez? – wonde

Répondre

3

Commentaire de wonde ci-dessus m'a conduit à la réponse -

J'étais tentative d'utilisation de ResolveUrl avant le déclenchement du chargement de la page du contrôle. Par conséquent, il n'y avait pas encore de page de contexte pour la fonction.

J'ai déplacé mon code dans la fonction de chargement de la page et maintenant il se résout comme prévu.

Merci pour le coup de pouce dans la bonne direction.

0

Je suppose que si cela fonctionne sur la page, mais pas le contrôle je suppose que vous pouvez essayer

this.Page.ResolveUrl("~"); 
+0

Cela fait probablement partie du problème: la propriété Page de contrôle est vide lors de l'exécution. –

+0

Chargez-vous ce contrôle en utilisant le code derrière? – BritishDeveloper

Questions connexes