从用户输入创建Uri

时间:2013-01-14 15:57:42

标签: c# windows-phone-7 browser uri

所以,我想从用户输入创建一个Uri。 我有一个文本框,一个Ok按钮和一个Web浏览器控件。

用户写下他想要的网址,点击按钮并启动getUri方法。

我尝试创建这样的东西:

private void ok_tap(object sender, System.Windows.Input.GestureEventArgs e)
{
    Uri address = new Uri(AdressBox.Text, UriKind.Absolute);
    web.Navigate(address);
}

Aaand工作得很好。但是,仅当用户类型使用“http://”时才会出现。问题是:没有人写完整个链接,只有“google.com”应用程序崩溃。

我可以检查用户输入中是否有类似“http”的内容并手动添加...但感觉就像我尝试重新发明轮子一样。

2 个答案:

答案 0 :(得分:4)

使用UriBuilder class。它的String构造函数默认为HTTP协议:

private void ok_tap(object sender, System.Windows.Input.GestureEventArgs e)
{
    Uri address = new UriBuilder(AdressBox.Text).Uri;
    web.Navigate(address);
}

答案 1 :(得分:0)

URI的一部分是要使用的协议,因此当用户未提供时,您需要执行某些操作。您的验证想法似乎合适,如果没有给出其他内容,请尝试“http://”。如果没有域后缀,您也可以添加“.com,.org,.net”。这不是重新发明轮子,只需要在需要的地方使用圆圈。无论如何,您应该防止应用程序因不完美的用户输入而崩溃。