C# 来自基的绝对URL+;C中的相对URL#

C# 来自基的绝对URL+;C中的相对URL#,c#,.net,url,path,C#,.net,Url,Path,我有一个基本URL: http://my.server.com/folder/directory/sample 还有一个相对的: ../../other/path 如何从中获取绝对URL?使用字符串操作非常困难,但是我想用一种安全的方式,使用Uri类或类似的东西 这是一个标准的C#应用程序,而不是ASP.NET应用程序 var baseUri = new Uri("http://my.server.com/folder/directory/sample"); var absoluteUri

我有一个基本URL:

http://my.server.com/folder/directory/sample
还有一个相对的:

../../other/path
如何从中获取绝对URL?使用字符串操作非常困难,但是我想用一种安全的方式,使用
Uri
类或类似的东西

这是一个标准的C#应用程序,而不是ASP.NET应用程序

var baseUri = new Uri("http://my.server.com/folder/directory/sample");
var absoluteUri = new Uri(baseUri,"../../other/path");


有些人可能正在寻找Javascript解决方案,允许在调试时“动态”转换URL

var absoluteUrl = function(href) {
    var link = document.createElement("a");
    link.href = href;
    return link.href;
} 
使用类似于:

绝对URL(“http://google.com“”

http://google.com/

absoluteUrl(“../../absolute”)

http://stackoverflow.com/absolute


我可以问一下,上面的代码有没有JavaScript等价物?有一点需要注意,由于某种未知的原因,
newURI
解码html实体,如果这造成了差异,这将导致错误的URL。例如,我有一个页面,比如说
hello%2Fworld.html
page。在绝对化之后,我得到了
hello/world.html
,这当然是不正确的。42票,但不起作用。第一个剪切的收益率:缺少/folder/part。@MartinCapodici OP指定的基URI与您指定的不同。在您的情况下,您可以使用
“http://my.server.com/folder/directory/sample/“
作为基本URI。
var absoluteUrl = function(href) {
    var link = document.createElement("a");
    link.href = href;
    return link.href;
}