2010-12-09 39 views
0

Cela peut être une question ridiculement facile, mais cela m'a bloqué. J'ai un formulaire Web où j'essaie de créer un lien hypertexte dans le code derrière un partage de serveur de fichiers, par exemple. file: // myServer/Shared /, mais lorsque la page est affichée, le lien n'inclut pas le nom du serveur, c'est-à-dire le fichier: /// Shared /. Je ne sais pas pourquoi cela arrive. Toute aide ou compréhension est appréciée.ASP.Net URL de navigation dans un lien hypertexte n'incluant pas le nom du serveur

MISE À JOUR:

Bien sûr, voici l'extrait où le lien est en cours. En tant que test, j'ai affecté le lien à une valeur de chaîne et le lien imprime l'URL attendue.

string foo = link.NavigateUrl; 

//Displays this 
"file://myServer/Shared/" 

Je ne sais pas pourquoi cela n'apparaît pas lorsque le lien est rendu dans la dernière page.

MISE À JOUR 2:

Ok, je sais donc je dois mettre le chemin absolu dans le code-behind, je pensais que ce que je faisais, mais il ne sera toujours pas rendu correctement.

MISE À JOUR 3:

je suivais pjacobs suggestion sur la définition de la propriété de test et il était en fait un pas dans la bonne direction. Je donne les résultats suivants:

link.Text = "<a href=\"file:\\myServer\\Shared\">link text</a>"; 

Maintenant, le lien obtient comme suit rendu: file:///myServer/Shared. Je suis presque là sauf qu'il donne l'extra '/' devant le nom du serveur. Je vais continuer à jouer avec cela, cela semble être si simple, je ne comprends pas pourquoi ASP.Net rend l'URL différemment.

+1

Pouvez-vous nous montrer le code? – David

Répondre

1

Vous devez définir la propriété Text du HyperLink ... link.Text = "whatever"

+0

Ceci est une épine dans tous les développeurs asp.net côté et a été depuis le premier jour. Il existe littéralement une douzaine de façons différentes de combiner les chemins. Je reviens toujours à cette publication quand j'ai besoin d'un rappel. http://www.west-wind.com/weblog/posts/132081.aspx – phillip

+0

Merci pjacobs, j'ai été en mesure de le faire fonctionner, très étrange que quelque chose de si subtile devrait être si difficile. Et merci pour le lien, je le garderai à portée de main au cas où je rencontrerais à nouveau cette erreur. – kingrichard2005

0

Les ressources sont-elles dans le projet? Si tel est le cas: , vous devez utiliser ResolveUrl pour résoudre l'emplacement Web de la ressource. http://msdn.microsoft.com/en-us/library/system.web.ui.control.resolveurl.aspx

si vous utilisez un contrôle asp.net vous ne devriez pas avoir besoin d'utiliser l'URL de résolution, mais vous devez faire référence à l'emplacement du fichier par rapport au chemin du projet.

Si non: Avez-vous donné le compte de lecture approprié au processus ASP.NET? Utiliser un répertoire virtuel? http://www.dotnetspider.com/tutorials/AspNet-Tutorial-86.aspx