我有一些像这样的字符串:
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"
答案 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)