我正在尝试调试路由问题,我不确定外部应用程序必须点击哪个 url 才能正确触发我的控制器。我只想把它们全部打印出来。
我发现在 ASP.NET Core 中获取所有注册的路由,但似乎没有一个答案在 Asp.net Core 3.0 中有效
我还找到了https://www.nuget.org/packages/AspNetCore.RouteAnalyzer,但它适用于 Core 2.0
我只想把它们全部打印出来。
所以,我猜这是为了调试目的?
在这种情况下,这将使您开始:
public HomeController(IActionDescriptorCollectionProvider provider)
{
this.provider = provider;
}
public IActionResult Index()
{
var urls = this.provider.ActionDescriptors.Items
.Select(descriptor => '/' + string.Join('/', descriptor.RouteValues.Values
.Where(v => v != null)
.Select(c => c.ToLower())
.Reverse()))
.Distinct()
.ToList();
return Ok(urls);
}
Run Code Online (Sandbox Code Playgroud)
这将以以下格式返回响应:
[
"/post/delete",
"/users/index/administration",
"/users/details/administration",
]
Run Code Online (Sandbox Code Playgroud)
如果您需要更多信息,这里IActionDescriptorCollectionProvider有很多。
| 归档时间: |
|
| 查看次数: |
724 次 |
| 最近记录: |