1

我的网站有很多很多路线。由于用户可以随意添加或删除页面,我需要一种不时重新注册路由的方法

在重新注册时,我不想清除整个路由缓存(“RouteTable.Routes.Clear”),但我宁愿按路由通过表路由,并在其名称上使用某个正则表达式,决定是否删除它.

之后,我将重新注册我需要的特定页面

同时继承我的代码

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

第一次删除后,它会引发错误“集合已修改;枚举操作可能无法执行。”

非常感谢您的帮助!!

4

1 回答 1

2

无法获取路由的路由名称,因为名称不是 Route 的属性。在向 RouteTable 添加路由时,该名称用作路由的内部索引,并且它永远不会公开。

有一种方法可以做到这一点。

  1. 注册路由时,在路由上设置一个带有路由名称的 DataToken 并使用它来过滤路由。

做 #1 的最简单方法可能是编写自己的扩展方法来映射路由。

于 2010-10-23T03:09:03.490 回答