Удаление определенных маршрутов из ASP.NET 4 маршрутируемых
-
09-10-2019 - |
Вопрос
У моего сайта много много вариантов. Поскольку пользователи могут добавлять или удалять страницы по желанию, мне нужно время от времени перерегировать маршруты
При ревергистере я не хочу очищать весь кэш маршрута («Reteatable.Routes.Clear»), но я бы предпочел бы пойти через таблицу маршрута по маршруту, и использовать определенное регулярное выражение на его имя, решить, его удалить или нет Отказ
После этого я перерегую конкретные страницы, которые мне нужно
вот мой код
For Each r In RouteTable.Routes
If CType(r, Route).DataTokens("ConfigID") = ConfigID Then RouteTable.Routes.Remove(r)
Next
После первого удаления он бросает ошибку «Коллекция была изменена; операция перечисления может не выполнить».
Большое спасибо за Вашу помощь!!
Решение
Невозможно получить название маршрута маршрута, потому что имя не является свойством маршрута. При добавлении маршрутов к маршрутируемому название используется в качестве внутреннего индекса для маршрута, и он никогда не выставлен.
Есть один способ сделать это.
- Когда вы регистрируете маршрут, установите DataTocken на маршруте по названию маршрута и используйте ее для фильтрации маршрутов.
Самый простой способ сделать # 1, чтобы наверное написать свои собственные методы расширения для картографических маршрутов.