MVC jest abstrakcją w stosunku do ASP.NET i dlatego ich "haki" naprawdę zależą od poziomu, na którym chcesz wprowadzić swoją logikę. Filtr działania pozwala na przechwycenie zdarzeń specyficznych dla MVC:
OnActionExecuting
- Ta metoda jest wywoływana przed wykonaniem czynności kontrolera.
OnActionExecuted
- Ta metoda jest wywoływana po wykonaniu czynności kontrolera.
OnResultExecuting
- Ta metoda jest wywoływana przed wykonaniem wyniku działania kontrolera.
OnResultExecuted
- Ta metoda jest wywoływana po wykonaniu działania kontrolera.
Zważywszy HttpModule tylko pozwala na podłączenie do ASP.NET (MVC, na której jest zbudowane) szczególne wydarzenia:
BeginRequest
- Wniosek został rozpoczęty. Jeśli chcesz coś zrobić na początku żądania (na przykład wyświetlaj banery reklamowe u góry każdej strony), zsynchronizuj to wydarzenie.
AuthenticateRequest
- Jeśli chcesz podłączyć własny niestandardowy schemat uwierzytelniania (na przykład wyszukaj użytkownika w bazie danych w celu sprawdzenia poprawności hasła), zbuduj moduł synchronizujący to zdarzenie i uwierzytelniający użytkownika w sposób, który chcesz do.
AuthorizeRequest
- To zdarzenie jest używane wewnętrznie do implementacji mechanizmów autoryzacji (na przykład do przechowywania list kontroli dostępu (ACL) w bazie danych zamiast w systemie plików). Chociaż możesz pominąć to wydarzenie, nie ma wielu dobrych powodów, aby to zrobić.
PreRequestHandlerExecute
- To zdarzenie występuje przed uruchomieniem procedury obsługi HTTP.
PostRequestHandlerExecute
- To zdarzenie występuje po wykonaniu procedury obsługi HTTP.
EndRequest
- Żądanie zostało zakończone. Możesz zbudować moduł debugowania, który zbiera informacje w ramach żądania, a następnie zapisuje informacje na stronie.
To naprawdę zależy od tego, kiedy należy wziąć udział w wydarzeniu i jakie wydarzenia są potrzebne.
Świetny artykuł tam – Ronnie