【问题标题】:Creating Uri from user input从用户输入创建 Uri
【发布时间】:2013-01-14 15:57:41
【问题描述】:

所以,我想根据用户输入创建一个 Uri。 我有一个文本框、一个确定按钮和网络浏览器控件。

用户写下他想要的网址,点击按钮并启动 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”的内容并手动添加它......但感觉就像我在尝试重新发明轮子。

【问题讨论】:

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


    【解决方案1】:

    使用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);
    }
    

    【讨论】:

      【解决方案2】:

      URI 的一部分是要使用的协议,所以当用户没有给出它时,你需要做一些事情。您的验证想法似乎很合适,如果没有给出其他内容,请尝试“http://”。如果没有域后缀,您也可以添加“.com、.org、.net”。这不是重新发明轮子,只是在需要的地方使用一个圆圈。无论如何,您应该防止应用因不完善的用户输入而崩溃。

      【讨论】:

        猜你喜欢
        • 2021-12-21
        • 2016-06-11
        • 2015-12-21
        • 2016-01-10
        • 1970-01-01
        • 1970-01-01
        • 2014-11-06
        • 2021-01-18
        • 2016-02-08
        相关资源
        最近更新 更多