首页 / 问答 / [.NET/.NET Core]ASP.NET Core应用程序中如何获取所有已注册的路由地址列表集合?

[.NET/.NET Core]ASP.NET Core应用程序中如何获取所有已注册的路由地址列表集合?

.NET C# 路由 .NET Core ASP.NET Core 2.19K 次浏览
0

在ASP.NET Core应用程序中,如何获取项目中已经注册的所有路由集合呢?在ASP.NET MVC的项目中,我们可以使用System.Web.Routing来处理路由表,在ASP.NET Core中是否有类似的处理路由的命名空间来获取项目中所有控制器的路由呢?

回复 [×]
提交评论
请输入评论内容

4 个回答

  • 0

    在ASP.NET Core应用程序中,可以通过IActionDescriptorCollectionProvider的实例中的ActionDescriptors.Items集合来获取当前项目中所有已经注册的路由地址列表(无需引用第三方的组件),如下:

    完整的示例代码如下:

    Rector的个人主页

    Rector

    2021-04-23 回答

    • 0

      在ASP.NET Core 2中,可以使用第三方的路由分析组件来获取当前项目中所有已经注册的路由地址列表,首先需要安装ASP.NET Core的路由分析组件AspNetCore.RouteAnalyzer

      配置Startup.cs启动文件:

      最后,在浏览器中打开http://localhost:xxxx/routes 这个地址(其中的xxxx表示你当前项目运行的端口号),运行效果如下:

      Rector的个人主页

      Rector

      2021-04-23 回答

      • 0

        如下是使用ActionDescriptors实现的比较完整的获取当前项目所有已经注册路由地址列表的示例:

        Rector的个人主页

        Rector

        2021-04-23 回答

        • 0

          或者,你还可以返回带有HTTP请求的谓词的路由地址列表,如下:

          Rector的个人主页

          Rector

          2021-04-23 回答

          我来回答