Sometimes in our controller actions we would like to be able to receive named parameters from the route instead of receiving the normal numbered parameters supplied when using the default routing pattern. This is a good strategy for separating the implementation of the routing system from the logical implementation in the controller.
For example, a controller accessing the 0 route parameter instead of string name makes the controller logic brittle because changes to the ordering and structure of the route could cause the parameter ordering to change. Additionally, accessing a parameter by a string name is much more self-documenting than when using an integer.