2010-11-03 7 views
0

J'ai un lien hypertexte qui jette l'exception: « Cette opération est prise en charge pour un URI relatif »Cette opération est prise en charge par une URI relative

code:

Process.Start(e.Uri.AbsolutePath); 

Je veux appliquer pour ouvrir le navigateur même si l'uri est quelque chose comme: "1aabbb3"

Comment puis-je faire cela?

Répondre

0

System.Diagnostics.Process.Start("iexplore"); devrait ouvrir un navigateur très spécifique à sa page d'accueil.

+0

Abrahams - Merci, mais comment puis-je ouvrir mon URL (même que mon URL est garbage) – Erez

+1

@Erez, le code ci-dessus lancerait le navigateur. Si vous ne disposez pas d'une URL correcte, où souhaitez-vous naviguer? –

0

Vous pouvez essayer d'utiliser Uri.OriginalString

Process.Start("iexplore.exe", e.Uri.OriginalString); 

modifié pour tenir compte des éclaircissements dans le commentaire.

+0

Je l'ai essayé mais il lance "Le système ne trouve pas le fichier spécifié". – Erez

+0

ahh Je pensais que vous vouliez que le processus soit identifié par l'URL, si vous vouliez ouvrir un nouveau navigateur avec cette URL, utilisez simplement Process.Start de Noel et transmettez-le comme paramètre, par exemple Process.Start ("IExplore.exe" "," www.northwindtraders.com "); – BrokenGlass

0

Solution1: vérifier IsAbsoluteUri et utiliser OriginalString

 if (uri.IsAbsoluteUri) 
      Console.WriteLine("Url:{0}", uri.AbsoluteUri); 
     else 
      Console.WriteLine("Url:{0}", uri.OriginalString); 

Solution2: définir le protocole URL

 url = "http://someRelativeUrl"; 
     uri = new Uri(url); 
     Console.WriteLine("Url:{0}", uri.AbsoluteUri);