使用Uri的相对路径

5
3个回答

2

你需要确保你的基本URI以/字符结尾:

public Uri CombineUris(string baseUri, string relativeUri)
{
    if (!baseUri.EndsWith("/")) {
        baseUri += "/";
    }
    return new Uri(new Uri(baseUri), relativeUri);
}

1
确保在根URI后面加上斜杠“/”。最后的斜杠非常重要。考虑一个例子:http://www.example.com/foo/bar.html, bar2.html。它应该解析为:http://www.example.com/foo/bar2.html。

0
Uri test = new Uri(new Uri(GetSafeURIString("http://www.google.com/test")), "foo");



private static string GetSafeURIString(uri)
{
   if(uri == null)
       return uri;
   else
       return uri.EndsWith("/") ? uri : uri + "/";
}

看起来你的 uri != null 条件被反转了。 - Frédéric Hamidi
null != uri 曾经是 C/C++ 世界中的良好实践。但在 C# 中,它总是期望一个布尔值,因此不会发生意外赋值。 - Ramesh
不,我的意思是如果 uri 不为 null,则返回它。我认为你想在它为 null 时返回它 :) - Frédéric Hamidi
抱歉。明白了。我正在更新它。 - Ramesh

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接