Attribute-based routing supports a few predefined tokens that are placed in square brackets ([ and ]), and will be replaced at runtime with their corresponding value:
- [controller]: This will be replaced with the controller name.
- [action]: This will be replaced with the method name.
- [area]: If your application supports areas, this will be replaced with the area in which the controller resides. Area functionality is not covered in this book, but for more information, you can refer to https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas.
For example, instead of writing ProductsController explicitly in the RouteAttribute, we can write it like this:
[Route("api/[controller]")][ApiController]