Прежде чем переходить слишком далеко, имейте в виду, что Контроллер не должен заканчиваться суффиксом «Контроллер».Соглашение об именах по умолчанию для контроллеров MVC заключается в добавлении слова «Контроллер» в класс.Таким образом, вашими значениями по умолчанию являются «HomeController» и «AboutController».Вы можете легко создать класс с именем «MyHome» или «Dashboard», и он будет наследоваться от Controller, и это будет контроллер без суффикса «Controller».
Я создал ограничение маршрута в прошлом.Вот фрагмент кода, который я использовал:
List<Type> _type = Assembly
.GetCallingAssembly()
.GetTypes()
.Where(type => type.IsSubclassOf(typeof(Controller)))
.ToList()
Код выполняет поиск в текущей сборке для всех классов, которые являются контроллерами.Вы также можете добавить в код где-то вроде:
.Where(type => type.IsSubclassOf(typeof(Controller)) && type.Name.ToLower() == "homecontroller")