此操作不支持相对URI

问题描述:

我已经抛出的异常的超链接: “此操作不支持相对URI”此操作不支持相对URI

代码:

Process.Start(e.Uri.AbsolutePath); 

我要强制执行它打开浏览器,即使uri是这样的:“1aabbb3”

我该怎么做?

System.Diagnostics.Process.Start("iexplore");应该打开一个非常具体的浏览器到它的主页。

+0

亚伯拉罕 - 谢谢,但我怎么能和我的网址打开它(即使是我的网址是垃圾) – Erez 2010-11-03 17:11:04

+1

@Erez,上面的代码会启动浏览器。如果你没有合适的URL,你期望导航? – 2010-11-03 17:27:00

您可以尝试使用Uri.OriginalString

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

编辑,以反映澄清评论。

+0

我试过了,但它抛出“系统找不到指定的文件”。 – Erez 2010-11-03 17:09:16

+0

ahh我以为你想让流程开始由URL标识,如果你想用这个URL打开一个新的浏览器,只需使用Noel的Process.Start并将它作为参数传递给URL即Process.Start(“IExplore.exe “,”www.northwindtraders.com“); – BrokenGlass 2010-11-03 17:32:09

解决方法1:检查IsAbsoluteUri和使用OriginalString

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

溶液2:定义URL协议

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