Мне нужно объединить два URL-адреса, в которых содержатся данные .Path.Часть пути перезаписывается при слиянии двух URI
Я хотел бы использовать Uri
, чтобы дать мне возможность .TryCreate(), чтобы я мог уловить неверные URL.
Проблема, с которой я столкнулся в том, что путь базы URI, кажется, игнорируется, когда я сливаю абсолютный и относительный URI:
Uri absoluteUri= new Uri("http://hostname/path/", UriKind.Absolute);
Uri relativeUri = new Uri("/my subsite/my page.aspx?my=query", UriKind.Relative);
Uri resultUri;
if (!Uri.TryCreate(absoluteUri, relativeUri, out resultUri))
// handle errors
Выход из выше:
http://hostname/my%20subsite/my%20page.aspx?my=query
Я хотел бы, чтобы это было:
http://hostname/path/my%20subsite/my%20page.aspx?my=query
есть ли способ объединить URL-адреса, которые BO го содержат информацию о пути, используя класс Uri
?
Вы попробовали? не делает никакой разницы когда я делаю. –
@anders, да, работает для меня; Я редактирую свой ответ с полным примером; пожалуйста, посмотрите –
А я нашел, что заставило ваш код работать, а не мой: Кажется, что абсолютный URL-адрес также должен заканчиваться /, чтобы заставить его работать! Я использовал string absoluteUrl = "http: // hostname/path"; и это не сработало, но с обеими концевыми славами после «пути» и без стартовой косой черты перед «моим» это работает! Похоже, это плохой тест, но вы заслуживаете ответа на этот вопрос :-) –