【问题标题】:How do controller actions get mapped to routes under the hood?控制器操作如何映射到引擎盖下的路由?
【发布时间】:2021-10-15 09:44:10
【问题描述】:

我一直在尝试深入研究aspnetcore 存储库,以尝试了解控制器操作如何映射到中间件中的路由。对我来说,这似乎是黑魔法。我看到UseEndpointsMapControllers 似乎执行这些功能,但我很快就迷失了代码的复杂程度。谁能指点我一个方向以了解控制器操作如何映射到引擎盖下的路由?

【问题讨论】:

  • 每个控制器操作/页面处理程序都会有一个匹配的ActionDescriptor。所以我认为你可以从中间开始......在这里? github.com/dotnet/aspnetcore/blob/….
  • 如果你是新手,我建议你从新项目开始,那么最好通过这种存储库。尝试创建一个新的控制器,然后看看request routed to your controller and how it produce the view...,这样你就可以快速进入这个repo
  • 感谢@Chetan 和@Md Farid Uddin Kiron,但我已经知道如何使用它们了。我想知道如何处理它们的控制器以供UseEndpoints 中间件使用。你有什么建议去哪里了解这个过程是如何在幕后发生的?如果我不理解你,请原谅我。
  • @RyanClements 还有什么可以帮助您的吗?

标签: c# asp.net-core .net-core controller asp.net-core-middleware


【解决方案1】:

我明白你的意思,让我解释一下,中间有很多过程,许多delegates 工作从controllermiddleware 过程成就。

您可以查看此图以了解完整的流程步骤,以及完整机制如何在幕后工作。

Asp.net 流程:

另外,我建议您阅读下面的官方文档,最终加深您的理解。

  1. Asp.net core MVC pattern
  2. Middleware deeper understanding

希望它有助于开始使用好的指南。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 2016-04-03
    • 1970-01-01
    相关资源
    最近更新 更多