MapControllerRoute、MapDefaultControllerRoute和MapControllers之间的区别?

Difference between MapControllerRoute, MapDefaultControllerRoute, and MapControllers?

我正在将 .NET Core 2.1 升级到 .NET Core 3.0,我在这里看到我必须使用 UseEndpoints。 但是,在某些页面上,我看到它与 MapControllerRoute、MapDefaultControllerRouteMapControllers 一起使用。

我查看了文档,发现 MapDefaultControllerRouteMapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}") 基本相同。 但我不明白与 MapControllers 的区别。 最后一个函数实际上做了什么? 文档说:“在不指定任何路由的情况下将控制器操作的端点添加到IEndpointRouteBuilder。”,但我不明白,抱歉。

答案

MapControllerRoute

使用常规路由(最常用于 MVC 应用程序),并设置 URL 路由模式。 所以你会在教程/文档中看到这样的东西:

endpoints.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

您可以将其设置为您想要的任何值(在合理范围内),并且您的路线将遵循此模式。 上面的模式基本上是{{root_url}}/{{name_of_controller}}/{{name_of_action}}/{{optional_id}},如果没有提供控制器和动作,它默认为 home/index

MapDefaultControllerRoute 这是上面的内容,但它简写了我上面显示的默认模式的配置。

MapControllers 这不会对路由做出任何假设,并且将依赖于用户执行属性路由(最常用于 WebAPI 控制器)以将请求发送到正确的位置。

注意:完全可以在侧边属性路由中使用 MapControllerRoute(并通过代理 MapDefaultControllerRoute)。 如果用户不提供属性,它将使用定义的默认模式。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值