Popular blog tags

With .NET Core 3, the responsibility of routing is on the shoulders of the EndpointMiddlware component. Registrations of the approaches described above, MVC, Razor Pages, and API occur in the Configure method of the Startup class. Below, you’ll see the registration of all Razor Pages endpoints.

app.UseEndpoints(endpoints => { endpoints.MapRazorPages(); });

What you may not realize is that each registration goes into a global bank of endpoints. This data source of endpoints is called the EndpointDataSource. Luckily, this data source is also registered (on the down-low) with your dependency injection container. The endpoint data source will be critical for our solution.

@using Microsoft.AspNetCore.Mvc.ApplicationModels
@using Microsoft.AspNetCore.Mvc.RazorPages
@using Microsoft.AspNetCore.Routing
@inject EndpointDataSource EndpointsDataSource

@{
    var endpoints = EndpointsDataSource.Endpoints.ToList();
}

<table class="table">
    <thead class="thead-dark">
    <tr>
        <th scope="col">Order</th>
        <th scope="col">Display Name</th>
        <th scope="col">Route Pattern</th>
        <th scope="col">Metadata</th>
    </tr>
    </thead>
    <tbody>
    @foreach (var endpoint in endpoints)
    {
        var routeEndpoint = endpoint as RouteEndpoint;
        <tr>
            <td>@routeEndpoint?.Order</td>
            <td>@endpoint.DisplayName</td>
            <td>@routeEndpoint?.RoutePattern.RawText</td>
            <td>
                <ul>
                    @foreach (var md in endpoint.Metadata)
                    {
                        switch (md)
                        {
                            case PageRouteMetadata prm:
                                <li>
                                    <p>@nameof(PageRouteMetadata)</p>
                                    <ul>
                                        <li>Page Route: @prm.PageRoute</li>
                                        <li>Route Template: @prm.RouteTemplate</li>
                                    </ul>
                                </li>
                                break;
                            case PageActionDescriptor pad:
                                <li>
                                    <p>@nameof(PageActionDescriptor)</p>
                                    <ul>
                                        <li>Id: @pad.Id</li>
                                        <li>Area: @pad.AreaName</li>
                                        <li>Display Name: @pad.DisplayName</li>
                                        <li>View Engine Path: @pad.ViewEnginePath</li>
                                        <li>Relative Path: @pad.RelativePath</li>
                                    </ul>
                                </li>
                                break;
                            case RouteNameMetadata rnm:
                                <li>
                                    Route Name Metadata: @rnm.RouteName
                                </li>
                                break;
                            case SuppressLinkGenerationMetadata slg:
                                <li>
                                    suppress link: @slg.SuppressLinkGeneration;
                                </li>
                                break;
                            default:
                                <li>@md.ToString()</li>
                                break;
                        }
                    }
                </ul>
            </td>
        </tr>
    }
    </tbody>
</table>

 

And here is what it looks like when you visit the page.

 

 

Order Display Name Route Pattern Metadata
0 Elasticsearch.Web.Controllers.ArticleAPIController.Get (Elasticsearch.Web) api/ArticleAPI
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.RouteAttribute
  • Microsoft.AspNetCore.Mvc.HttpGetAttribute
  • Microsoft.AspNetCore.Routing.HttpMethodMetadata
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Route Name Metadata:
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint
0 Elasticsearch.Web.Controllers.ArticleAPIController.Get (Elasticsearch.Web) api/ArticleAPI/{id}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.RouteAttribute
  • Microsoft.AspNetCore.Mvc.HttpGetAttribute
  • Microsoft.AspNetCore.Routing.HttpMethodMetadata
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Route Name Metadata:
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint
0 Elasticsearch.Web.Controllers.ArticleAPIController.Post (Elasticsearch.Web) api/ArticleAPI
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.RouteAttribute
  • Microsoft.AspNetCore.Mvc.HttpPostAttribute
  • Microsoft.AspNetCore.Routing.HttpMethodMetadata
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Route Name Metadata:
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint
0 Elasticsearch.Web.Controllers.ArticleAPIController.Put (Elasticsearch.Web) api/ArticleAPI/{id}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.RouteAttribute
  • Microsoft.AspNetCore.Mvc.HttpPutAttribute
  • Microsoft.AspNetCore.Routing.HttpMethodMetadata
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Route Name Metadata:
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint
0 Elasticsearch.Web.Controllers.ArticleAPIController.Delete (Elasticsearch.Web) api/ArticleAPI/{id}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.RouteAttribute
  • Microsoft.AspNetCore.Mvc.HttpDeleteAttribute
  • Microsoft.AspNetCore.Routing.HttpMethodMetadata
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Route Name Metadata:
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint
1 Elasticsearch.Web.Controllers.ElasticsearchController.Index (Elasticsearch.Web) {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.HttpGetAttribute
  • Microsoft.AspNetCore.Routing.HttpMethodMetadata
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint
  • suppress link: True;
1 Elasticsearch.Web.Controllers.ElasticsearchController.Index (Elasticsearch.Web) {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.HttpPostAttribute
  • Microsoft.AspNetCore.Routing.HttpMethodMetadata
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint
  • suppress link: True;
1 Elasticsearch.Web.Controllers.ElasticsearchDemoByVueController.Index (Elasticsearch.Web) {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • suppress link: True;
1 Elasticsearch.Web.Controllers.HomeController.Index (Elasticsearch.Web) {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • suppress link: True;
1 Elasticsearch.Web.Controllers.HomeController.About (Elasticsearch.Web) {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • suppress link: True;
1 Elasticsearch.Web.Controllers.HomeController.Contact (Elasticsearch.Web) {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • suppress link: True;
1 Elasticsearch.Web.Controllers.HomeController.Error (Elasticsearch.Web) {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • suppress link: True;
1 Elasticsearch.Web.Controllers.HomeController.EndpointDebug (Elasticsearch.Web) {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • suppress link: True;
1 Elasticsearch.Web.Controllers.IndexerController.Index (Elasticsearch.Web) {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • suppress link: True;
1 Elasticsearch.Web.Controllers.IndexerController.CreateBlogIndex (Elasticsearch.Web) {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • System.Runtime.CompilerServices.AsyncStateMachineAttribute
  • System.Diagnostics.DebuggerStepThroughAttribute
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • suppress link: True;
1 Elasticsearch.Web.Controllers.SearchController.Index (Elasticsearch.Web) {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • suppress link: True;
1 Elasticsearch.Web.Controllers.SearchController.Index77 (Elasticsearch.Web) {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.HttpPostAttribute
  • Microsoft.AspNetCore.Routing.HttpMethodMetadata
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint
  • suppress link: True;
1 Elasticsearch.Web.Controllers.SearchController.Index410 (Elasticsearch.Web) {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.HttpGetAttribute
  • Microsoft.AspNetCore.Routing.HttpMethodMetadata
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint
  • suppress link: True;
1 Elasticsearch.Web.Controllers.SearchController.Index (Elasticsearch.Web) {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.HttpGetAttribute
  • Microsoft.AspNetCore.Routing.HttpMethodMetadata
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint
  • suppress link: True;
2 Elasticsearch.Web.Areas.Stockso.Controllers.HomeController.Index (Elasticsearch.Web) {area}/{controller}/{did?}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.AreaAttribute
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: areas
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • suppress link: True;
1 Elasticsearch.Web.Areas.Stockso.Controllers.IndexerController.Index (Elasticsearch.Web) {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • suppress link: True;
1 Elasticsearch.Web.Areas.Stockso.Controllers.IndexerController.CreateBlogIndex (Elasticsearch.Web) {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • System.Runtime.CompilerServices.AsyncStateMachineAttribute
  • System.Diagnostics.DebuggerStepThroughAttribute
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Microsoft.AspNetCore.Routing.DataTokensMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • suppress link: True;
0 Elasticsearch.Web.Areas.Stockso.Controllers.SearchController.Index (Elasticsearch.Web) Stockso/Search/Index
  • Microsoft.AspNetCore.Mvc.AreaAttribute
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.RouteAttribute
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Route Name Metadata:
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
0 Elasticsearch.Web.Areas.Stockso.Controllers.SearchController.Index (Elasticsearch.Web) Stockso/Search/Index
  • Microsoft.AspNetCore.Mvc.AreaAttribute
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.RouteAttribute
  • Microsoft.AspNetCore.Mvc.HttpGetAttribute
  • Microsoft.AspNetCore.Routing.HttpMethodMetadata
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Route Name Metadata:
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint
0 Elasticsearch.Web.APIControllers.ElasticsearchAPIController.ElasticSearchModel (Elasticsearch.Web) api/v1/ElasticsearchAPI/GetSearchDataMenu
  • Microsoft.AspNetCore.Cors.EnableCorsAttribute
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • System.Runtime.CompilerServices.AsyncStateMachineAttribute
  • System.Diagnostics.DebuggerStepThroughAttribute
  • Microsoft.AspNetCore.Mvc.HttpGetAttribute
  • Microsoft.AspNetCore.Routing.HttpMethodMetadata
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Route Name Metadata:
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint
0 Elasticsearch.Web.APIControllers.ElasticsearchAPIController.CreateIndex (Elasticsearch.Web) api/v1/ElasticsearchAPI/createindex
  • Microsoft.AspNetCore.Cors.EnableCorsAttribute
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • System.Runtime.CompilerServices.AsyncStateMachineAttribute
  • System.Diagnostics.DebuggerStepThroughAttribute
  • Microsoft.AspNetCore.Mvc.HttpPostAttribute
  • Microsoft.AspNetCore.Routing.HttpMethodMetadata
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Route Name Metadata:
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint
0 Elasticsearch.Web.APIControllers.ElasticsearchAPIController.Index (Elasticsearch.Web) api/v1/ElasticsearchAPI/test/createindex
  • Microsoft.AspNetCore.Cors.EnableCorsAttribute
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • Microsoft.AspNetCore.Mvc.HttpPostAttribute
  • Microsoft.AspNetCore.Mvc.RouteAttribute
  • Microsoft.AspNetCore.Routing.HttpMethodMetadata
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Route Name Metadata:
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint
0 Elasticsearch.Web.APIControllers.ElasticsearchAPIController.ElasticSearchIndex (Elasticsearch.Web) api/v1/ElasticsearchAPI/searchindex
  • Microsoft.AspNetCore.Cors.EnableCorsAttribute
  • Microsoft.AspNetCore.Mvc.ControllerAttribute
  • System.Runtime.CompilerServices.AsyncStateMachineAttribute
  • System.Diagnostics.DebuggerStepThroughAttribute
  • Microsoft.AspNetCore.Mvc.HttpPostAttribute
  • Microsoft.AspNetCore.Routing.HttpMethodMetadata
  • Microsoft.AspNetCore.Mvc.Controllers.ControllerActionDescriptor
  • Route Name Metadata:
  • Microsoft.AspNetCore.Mvc.Filters.ControllerActionFilter
  • Microsoft.AspNetCore.Mvc.ViewFeatures.SaveTempDataAttribute
  • Microsoft.AspNetCore.Mvc.ModelBinding.UnsupportedContentTypeFilter
  • Microsoft.AspNetCore.Mvc.ActionConstraints.HttpMethodActionConstraint
1 Route: {controller=Home}/{action=Index}/{id?} {controller=Home}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Routing.SuppressMatchingMetadata
  • Route Name Metadata: default
  • Microsoft.AspNetCore.Routing.EndpointNameMetadata
2 Route: {area}/{controller}/{did?}/{action=Index}/{id?} {area}/{controller}/{did?}/{action=Index}/{id?}
  • Microsoft.AspNetCore.Routing.SuppressMatchingMetadata
  • Route Name Metadata: areas
  • Microsoft.AspNetCore.Routing.EndpointNameMetadata