Абсолютный URL-адрес из базы + относительный URL-адрес в C#
Вопрос
У меня есть базовый 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");
ИЛИ
Uri uri;
if ( Uri.TryCreate("http://base/","../relative", out uri) ) doSomething(uri);
Другие советы
Некоторые могут искать решение Javascript, которое позволило бы преобразовывать URL-адреса «на лету» при отладке.
var absoluteUrl = function(href) {
var link = document.createElement("a");
link.href = href;
return link.href;
}
используйте как:
absoluteUrl("http://google.com")
http://google.com/
или
absoluteUrl("../../absolute")
http://stackoverflow.com/absolute
Не связан с StackOverflow