Ваша проблема в том, что вы запускаете генератор событий внутри установщика, вы создали двустороннюю связывающую петлю обратной связи.
Источник событий обновляет родительский компонент, и новое значение возвращается в установщик.
Это назвало перезапись URL:
MSDN: перезапись URL в ASP.NET
Править: Как @Justice указывает, StackOverflow использует Маршрутизацию.
StackOverflow использует что-то названное Маршрутизацией, которая идет с.NET 3,5 SP1. Маршрутизация является популярной функцией многих платформ MVC, таких как ASP.NET MVC, Ruby on Rails, и много Python и платформ PHP.
Я видел, что выполненный путем простого создания папки для каждой веб-страницы и затем наличия каждой папки содержит документ Default.aspx (Предполагающий, что Default.aspx является установкой как документом по умолчанию в IIS, который это по умолчанию). Затем можно перейти к любой папке на сайте, не указывая страницу (Default.aspx).
Для динамической части я работал с системами CMS, которые делают это, этот путь и страница Default.aspx просто наследовались некоторому основному шаблону, и система CMS использует ASP.NET, представляющий enginge для динамичного завершения веб-страницы.
Используя папки может быть немного нагружено структурой сайта, но это - простой способ устранить названия страницы из браузера.
Это - то, как я структурирую свой веб-сайт и избегаю необходимости использовать названия страницы..., например, http://www.innovaapps.net/Blog просто поднимает default.aspx страницу, не имея необходимость указывать название страницы.
Переполнение стека использует ASP.net MVC
MVC использует URL + Строка запроса для определения содержания, таким образом, не как URL, который указывает на определенную страницу, но больше как иерархический путь к свойствам некоторых данных, которые будут отображены
НАПРИМЕР, https://stackoverflow.com/users / [Помещенный идентификатор пользователя Здесь] / [Помещенное Имя пользователя Здесь]
запрашивает веб-сайт отображать ПОЛЬЗОВАТЕЛЯ с идентификатором, указанным в пути (в этом случае, имя пользователя, вероятно, только для ударов) в противоположность определенной странице, созданной только для того пользователя.
Переполнение стека было создано с помощью ASP.NET MVC, который использует названную Маршрутизацию техники, см.: