Мы унаследовали некоторый код С# как часть проекта от другой компании, которая перенаправляет URL-адреса, которая изменяет существующую строку запроса, изменяя значения элементов, добавляя новые параметры и т.д. по мере необходимости. Однако проблема заключается в том, что код в лучшем случае глючит, и в итоге он дублирует элементы в строке запроса, а не обновляет их должным образом. Код работает на первом проходе, но при дополнительных вызовах проблемы с дублированием становятся очевидными.
Пример: MyPage.aspx? startdate = 08/22/09 & startdate = 09/22/09
Вместо дублирования элемента он должен быть обновлен с новым значением, если он уже существует, или добавлен, если он уже не существует.
Существует ли класс С# или набор функций для обработки строк запроса, что позволяет простому доступу и обновлению/добавлению параметров, которые затрагивают эти проблемы, вместо подхода "слепой", который, кажется, используется сейчас с кодом? Это должно быть в состоянии обрабатывать несколько параметров, которые могут или не могут существовать в любое время и быть добавлены и обновлены при последующих вызовах.
Мы скорее используем существующую логику, чем если возможно, воссоздаем что-то, чтобы быстро решить эту проблему с помощью полустандартного пути для будущей ремонтопригодности и повторного использования.