`MapControllerRoute`、`MapDefaultControllerRoute` 和 `MapControllers` 之间的区别?
Difference between `MapControllerRoute`, `MapDefaultControllerRoute`, and `MapControllers`?
我正在将 .NET Core 2.1 升级到 .NET Core 3.0,我发现 here 我必须使用 UseEndpoints
。但是,在某些页面上,我看到它带有 MapControllerRoute
、MapDefaultControllerRoute
或 MapControllers
。
我查看了documentation,发现MapDefaultControllerRoute
和MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}")
基本一样。但是我不明白 MapControllers
的区别。最后一个函数实际上做了什么?文档说:"Adds endpoints for controller actions to the IEndpointRouteBuilder without specifying any routes.",但我不明白,抱歉。
MapControllers
用于映射控制器上可能存在的任何属性,例如 [Route]
、[HttpGet]
等
来自微软:
将控制器操作的端点添加到 Microsoft.AspNetCore.Routing.IEndpointRouteBuilder
没有指定任何路线。
解释:
这表示它将 url 映射到控制器和操作,您需要指定自己的路线
MapControllerRoute
使用常规路由(最常用于 MVC 应用程序),并设置 URL 路由模式。所以你会在 tutorials/documentation 中看到这样的东西:
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
您可以将此设置为您想要的任何值(在合理范围内),您的路线将遵循此模式。上面的模式基本上是 {{root_url}}/{{name_of_controller}}/{{name_of_action}}/{{optional_id}}
,如果没有提供控制器和动作,它默认为 home/index
.
MapDefaultControllerRoute
这是上面的,但是它简化了我上面显示的默认模式的配置。
地图控制器
这不会对路由做出任何假设,并且将依赖于用户进行属性路由(最常用于 WebAPI 控制器)以将请求发送到正确的位置。
N.B。完全可以在侧边属性路由中使用 MapControllerRoute(并通过代理 MapDefaultControllerRoute)。如果用户不提供属性,它将使用定义的默认模式。
我正在将 .NET Core 2.1 升级到 .NET Core 3.0,我发现 here 我必须使用 UseEndpoints
。但是,在某些页面上,我看到它带有 MapControllerRoute
、MapDefaultControllerRoute
或 MapControllers
。
我查看了documentation,发现MapDefaultControllerRoute
和MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}")
基本一样。但是我不明白 MapControllers
的区别。最后一个函数实际上做了什么?文档说:"Adds endpoints for controller actions to the IEndpointRouteBuilder without specifying any routes.",但我不明白,抱歉。
MapControllers
用于映射控制器上可能存在的任何属性,例如 [Route]
、[HttpGet]
等
来自微软: 将控制器操作的端点添加到 Microsoft.AspNetCore.Routing.IEndpointRouteBuilder 没有指定任何路线。 解释: 这表示它将 url 映射到控制器和操作,您需要指定自己的路线
MapControllerRoute
使用常规路由(最常用于 MVC 应用程序),并设置 URL 路由模式。所以你会在 tutorials/documentation 中看到这样的东西:
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
您可以将此设置为您想要的任何值(在合理范围内),您的路线将遵循此模式。上面的模式基本上是 {{root_url}}/{{name_of_controller}}/{{name_of_action}}/{{optional_id}}
,如果没有提供控制器和动作,它默认为 home/index
.
MapDefaultControllerRoute 这是上面的,但是它简化了我上面显示的默认模式的配置。
地图控制器 这不会对路由做出任何假设,并且将依赖于用户进行属性路由(最常用于 WebAPI 控制器)以将请求发送到正确的位置。
N.B。完全可以在侧边属性路由中使用 MapControllerRoute(并通过代理 MapDefaultControllerRoute)。如果用户不提供属性,它将使用定义的默认模式。