' System.UriFormatException'在HyperLink中

时间:2014-03-14 06:04:28

标签: c# windows-phone

我有一些像这样的字符串:

  

www.example.com/sdWqaP

     

twitter.com/sdfks

并希望将其分配到HyperLink

var hyperlink = new Hyperlink
{
   NavigateUri = new Uri(url),
   TargetName = "_blank",
};

如果网址以http://开头,则效果正常,否则会引发UriFormatException

更新:此www.google.com的网址无效http网址。没有比var url = "http://" + "www.google.com"

更好的方法

3 个答案:

答案 0 :(得分:3)

您可以使用

var uri = new UriBuilder(s).Uri;

参考:http://msdn.microsoft.com/en-us/library/y868d5wh(v=vs.110).aspx

public UriBuilder(
    string uri
)
// If uri does not specify a scheme, the scheme defaults to "http:".

答案 1 :(得分:1)

Scheme(在您的情况下为http://)是Uri字符串的必填部分。如果根据Uri.CheckSchemeName()方法未正确形成uri字符串中指定的方案,则将抛出UriFormatException

<强> [MSDN : Uri Constructor (String)]

我不明白你的意思“更安全的方式”。无论如何,在uri字符串中附加方案是常见的做法。

答案 2 :(得分:1)

检查您的网址是否有效,然后分配到网址

要验证网址,请检查以下链接

How to check whether a string is a valid HTTP URL?