Я знаю, что существуют события для того, прежде чем/после того, как действие запущено.
Есть ли что-нибудь выше в стеке как то, прежде чем контроллер назовут?
Нет такого понятия, как запуск контроллера . Контроллеры не запускаются. Это классы, экземпляры которых создаются, и для них вызываются действия (методы).
Вы можете украсить свое действие контроллера специальным атрибутом [ActionFilter]
, в котором вы можете переопределить OnActionExecuting , который будет вызываться перед вызовом действия контроллера. Этот метод также позволяет лучше разделить проблемы.
Многие события жизненного цикла приложения можно обрабатывать в файле Global.asax.
ASP.Net MVC по-прежнему работает через конвейер HttpApplication
, поэтому вы по-прежнему можете обрабатывать любые события от BeginRequest
до PreRequestHandlerExecute
, добавляя обработчики в Global.asax.
Пожалуйста, посмотрите следующий вопрос SO, который объясняет жизненный цикл в ASP.NET MVC.
Каков "жизненный цикл" страницы ASP.NET MVC по сравнению с ASP.NET WebForms?