Как мне разобрать и перестроить URL в ASP.Net? - PullRequest
3 голосов
/ 21 сентября 2010

Я занимаюсь разработкой приложения на C # / ASP.Net и пытаюсь найти способ разбить URL-адрес на его составные части, а затем заменить или удалить эти части и создать новый URL-адрес.

Например, если у меня есть следующий URL:

Я бы хотел разделить URL на:

  • Протокол (http, https, ftp и т. Д.)
  • Домен (www.site.com)
  • Страница (page.aspx)
  • Параметры URL (parm1 =value1, parm2 = value2)

Как только URL разделен, я бы хотел манипулировать каждой из частей, например:

  • добавить или удалить параметры
  • изменить значение параметров
  • изменить страницу с page.aspx на page2.aspx

Затем, как только я закончу, создайте новый URL, готовый для использования сизменения выше.

Я проверил документацию MSDN и т. д. и не могу найти в .Net служебный класс, чтобы позаботиться об этом.Есть идеи?

Приветствия, Стив

Ответы [ 2 ]

4 голосов
/ 21 сентября 2010

Фреймворк поставляется с классом UriBuilder для этой цели.

Он имеет свойства get / set для необходимых вам вещей:

  • Протокол: Схема свойство
  • Домен: Хост свойство
  • Страница: Путь свойство (даст вам полный путь, вам может понадобитьсявыполните некоторую обработку здесь).
  • Параметры: Свойство Query (отображается как строка, вам может потребоваться выполнить некоторую обработку для вашей строки).

Когда вы закончите манипулировать UriBuilder, используйте свойство Uri, чтобы получить результат в виде объекта Uri, или просто ToString (), если вам просто нужен URL-адрес в виде строки.

0 голосов
/ 31 марта 2011

Начните с использования UriBuilder (см. Ответ Драйса).

Для анализа свойства запроса используйте:

NameValueCollection q=HttpUtility.ParseQueryString(uri.Query);

На самом деле вы получаете HttpValueCollection (internal), поэтому при последующем вызове q.ToString () вы получите обратно закодированную строку запроса url.

Так как класс внутренний, вам нужно позвонить

NameValueCollection q=HttpUtility.ParseQueryString("");

, если вы хотите построить строку запроса с нуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...