Я думаю, что с точки зрения maintaibnability и readability, если у вас есть проект, который хорошо подходит для маршрутизации на основе конвенций, тогда идите с этим. В вашем конфигурационном файле много простого, чтобы иметь несколько маршрутов, чем украшать каждый контроллер.
НО ...
В моей основе опыта конвенции маршрутизации является слишком упрощенным и часто срывается на проекты, которые являются крупными и более сложными. Часто случается, что вы начинаете с маршрута по умолчанию {controller}/{action}/{id}. Но тогда вы решаете, что вам нужны еще несколько маршрутов, потому что вам нужна более глубокая иерархия, поэтому начните добавлять маршруты. Что-то вроде этого:/company/5/employee/7/edit. Тогда вы должны быть осторожны, в каком порядке вы отправляете маршруты, чтобы найти правильный маршрут. После того, как вы начнете добавлять пользовательские маршруты, вы можете обнаружить, что больше одного маршрута соответствует конкретному запросу, поэтому вы добавляете некоторые ограничения маршрута. По мере того, как ваш проект становится больше и/или более сложным, конфигурация вашего маршрута растет по размеру и сложности, что делает его уязвимым к ошибкам и его трудно поддерживать.
Маршрутизация атрибутов дает вам больше контроля над вашими маршрутами, поскольку вы можете сопоставлять определенные контроллеры и действия с конкретными маршрутами и не беспокоиться о том, что неправильный маршрут будет согласован. Кроме того, поскольку маршруты находятся в непосредственной близости от маршрутов устранения неисправностей контроллеров, это намного проще.
TL; В какой-то момент маршруты становятся более сложными для поддержания безопасности, независимо от того, используете ли вы маршрутизацию на основе конвенций или маршрутизацию атрибутов. Маршрутизация атрибутов - это управление вашим маршрутом и предотвращение ошибок маршрутизации.
Другого варианта, который выглядит перспективным является MvcCodeRouting который пространство имен маршрутизация на основе
вот статью я прочитал, да маршрутизация атрибута дает менее многословную маршрутизацию. но я не против делать больше нажатий клавиш, если это приведет к более удобному коду. Я хочу знать, есть ли другой способ реализовать эти атрибуты или как это лучше, чем на основе конвенций. –