首页 > 解决方案 > 为什么 URI 构造函数从 baseUri 参数中删除部分路径?

问题描述

public class Program
{
    public static void Main()
    {
        Uri baseUri = new Uri("http://localhost:7777/BasePath/");
        Uri uri = new Uri(baseUri, "/controller");
        Console.WriteLine(uri);
    }
}

从 uri 中擦除 /BasePath 的意图行为是否是最终结果http://localhost:7777/controller

标签: c#uri

解决方案


我不得不深入研究您正在调用的构造函数的文档

public Uri (Uri baseUri, string relativeUri);

此外,如果relativeUri以斜杠开头,那么它将替换baseUri.

这是预期的行为。如果您指定以斜杠开头的相对路径,则假定该相对路径是整个相对路径,因此它会丢弃任何已包含在baseUri.


推荐阅读