В моем файле ViewStart мне нужно отобразить другой макет в зависимости от типа контроллера, который отображает представление.
Мне нужно определить, является ли контроллер на самом низком уровне производным от VehicleController.
Итак, скажем, у меня есть такая модель наследования:
CarController: VehicleController
FordController: CarController
FordFocusController: FordController
Теперь в FordFocusController у меня есть простой метод Index (), возвращающий View.
Итак, во ViewStart я могу определить контроллер следующим образом:
ViewContext.Controller.GetType().BaseType // returns FordController - correct!
Теперь для FordFocusController, это вернет FordController.
Однако как я могу определить, является ли это типом VehicleController, который в данном случае находится на самом низком уровне?
Например, я не хочу делать что-то подобное, потому что это не динамично c!
ViewContext.Controller.GetType().BaseType.GetType().BaseType.GetType()
Спасибо