Удаление определенных маршрутов из ASP.NET 4 маршрутируемых

StackOverflow https://stackoverflow.com/questions/3967333

Вопрос

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

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

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

вот мой код

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

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

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

Это было полезно?

Решение

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

Есть один способ сделать это.

  1. Когда вы регистрируете маршрут, установите DataTocken на маршруте по названию маршрута и используйте ее для фильтрации маршрутов.

Самый простой способ сделать # 1, чтобы наверное написать свои собственные методы расширения для картографических маршрутов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top