'System.UriFormatException' in HyperLink

本文关键字:HyperLink in System UriFormatException | 更新日期: 2023-09-27 17:50:07

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

www.example.com/sdWqaP

twitter.com/sdfks

,并希望将它们分配给HyperLink

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

如果url以http://开头,则正常工作,否则抛出UriFormatException

更新: url像www.google.com不是有效的http url。难道没有比var url = "http://" + "www.google.com"

'System.UriFormatException' in HyperLink

更好的方法吗?

可以使用

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:".

Scheme(在您的案例中是http://)是Uri字符串的强制性部分。如果uri字符串中指定的模式没有根据uri . checkschemename()方法正确形成,则抛出UriFormatException

[MSDN Uri构造函数(String)):

我不太明白你的意思"更好更安全的方式"

检查你的URL是否有效,然后分配给URL

要验证URL,请检查以下链接

如何检查一个字符串是否是一个有效的HTTP URL?