Часть пути перезаписывается при слиянии двух URIs

Все до сих пор сказали, как таблицы должны только использоваться для табличных данных, и это верно. Смотрите на источник HTML любой страницы на ТАК, и Вы будете видеть, что у них есть различная идея...

я думаю, что их объяснение - то, что иногда использование таблицы именно так намного более просто. Хотя, существует много действительно хороших причин удобства использования, почему избежать их.

6
задан Peter Mortensen 29 July 2011 в 23:04
поделиться

1 ответ

Ваш относительный URI должен быть относительным, т. Е. Удалить первую косую черту (или добавьте точку),

string relative = "/my subsite/my page.aspx?my=query";

Uri test1= new Uri(relative.Substring(1), UriKind.Relative); // without 'root'
Uri test2= new Uri("." + relative, UriKind.Relative);        // with 'current'

Рабочий пример:

Uri baseUri = new Uri("http://hostname/path/");
string relative = "/my subsite/my page.aspx?my=query";

Uri test1 = new Uri(baseUri, relative);              // original string
Uri test2 = new Uri(baseUri, relative.Substring(1)); // without 'root' character
Uri test3 = new Uri(baseUri, "." + relative);        // with 'current' character

Console.WriteLine(test1.OriginalString); // wrong
Console.WriteLine(test2.OriginalString); // right!
Console.WriteLine(test3.OriginalString); // right!

Итак, вам, вероятно, следует разобраться со своей относительной частью следующим образом:

if (relative.StartsWith("/"))
    relative = "." + relative;
14
ответ дан 8 December 2019 в 17:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: