Удаление определенных маршрутов из таблицы ASP.NET 4 RoutesTable - PullRequest
1 голос
/ 19 октября 2010

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

при перерегистрации, я не хочу очищать весь кэш маршрутов ("RouteTable.Routes.Clear"), но я бы предпочел пройти через таблицу маршрут по маршруту, и, используя определенное регулярное выражение в своем имени, решить, удалить его или нет.

после этого я перерегистрирую конкретные страницы, которые мне нужны

пока что мой код

        For Each r In RouteTable.Routes
            If CType(r, Route).DataTokens("ConfigID") = ConfigID Then RouteTable.Routes.Remove(r)
        Next

после первого удаления выдает ошибку "Коллекция была изменена; операция перечисления может не выполняться."

большое спасибо за вашу помощь!!

1 Ответ

2 голосов
/ 23 октября 2010

Невозможно получить название маршрута маршрута, потому что имя не является свойством маршрута.При добавлении маршрутов в RouteTable имя используется в качестве внутреннего индекса для маршрута и никогда не раскрывается.

Есть один способ сделать это.установите DataToken на маршрут с именем маршрута и используйте его для фильтрации маршрутов.

Самый простой способ сделать №1 - это, вероятно, написать собственные методы расширения для сопоставления маршрутов.

...