Get all registered routes in ASP.NET Core

前端 未结 8 1382
独厮守ぢ
独厮守ぢ 2020-12-02 12:07

I am new to .NET Core. I want to get a list of all registered routes in ASP.NET Core. In ASP.NET MVC we had route table in System.Web.Routing, is there somethin

8条回答
  •  谎友^
    谎友^ (楼主)
    2020-12-02 12:59

    If you don't use MVC call GetRouteData().Routers.OfType().First() for access to RouteCollection:

    app.UseRouter(r => {
        r.MapGet("getroutes", async context => {
            var routes = context.GetRouteData().Routers.OfType().First();
            await context.Response.WriteAsync("Total number of routes: " + routes.Count.ToString() + Environment.NewLine);
            for (int i = 0; i < routes.Count; i++)
            {
                await context.Response.WriteAsync(routes[i].ToString() + Environment.NewLine);
            }               
        });
        // ...
        // other routes
    });
    

    Make sure to call GetRouteData() inside route handler otherwise it returns null.

提交回复
热议问题