【问题标题】:Removing Specific Routes from ASP.NET 4 RoutesTable从 ASP.NET 4 RoutesTable 中删除特定路由
【发布时间】:2010-10-19 10:19:05
【问题描述】:

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

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

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

这是我的代码

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

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

非常感谢您的帮助!!

【问题讨论】:

    标签: asp.net caching routing routetable


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 嗨。谢谢。好想法。现在请 c 我的代码。我现在收到一个错误“集合已修改;枚举操作可能无法执行。”这个错误很熟悉,所以我认为我只是建立一个新的路由集合并将其提供给路由表,但它是只读的。那么我们能做什么呢?
    猜你喜欢
    • 2016-06-01
    • 2016-03-05
    • 2020-02-14
    • 2019-08-21
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 2022-11-25
    • 2020-09-27
    相关资源
    最近更新 更多