任何人都可以向我说明控制器选择器到底是什么吗?我喜欢实现自己的控制器约定,它类似于官方文档中的命名空间路由示例:
https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/application-model https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/routing
这两个示例都包含一个非常类似的代码来应用自定义路由模板字符串:
1。应用程序模型对话示例:
...
controller.Selectors[0].AttributeRouteModel = new AttributeRouteModel()
{
Template = controller.ControllerType.Namespace.Replace('.', '/') + "/[controller]/[action]/{id?}"
};
2。控制器模型约定的示例:
...
foreach (var selector in controller.Selectors)
{
selector.AttributeRouteModel = new AttributeRouteModel()
{
Template = template.ToString()
};
}
第一个示例仅为第一个选择器创建new AttributeRouteModel()
,而第二个示例为所有创建。
所以我在这一点上感到困惑。任何控制器都可以有多个选择器吗?如果是,那些选择者会是什么?对此有任何正式/非正式的解释吗?