2010-06-02 3 views
6

So che ci sono eventi per prima/dopo l'attivazione di un'azione.Ci sono eventi prima che venga eseguito un controller?

C'è qualcosa di più in alto nella pila come prima che venga chiamato un controller?

+0

Da dentro il controller? – SLaks

+0

al di fuori del controller, più in alto nella pila appena prima che il controller venga chiamato. – Blankman

+0

Se si sta tentando di capire quale controller verrà istanziato in fase di esecuzione, sarebbe utile un controller-factory. Difficile dire cosa intendi senza un esempio di ciò che stai cercando di realizzare. – Jab

risposta

9

Non esiste un concetto come con un controller. I controller non vengono eseguiti. Sono classi che vengono istanziate e vengono invocate azioni (metodi) su di loro.

È possibile decorare l'azione del controller con un attributo personalizzato [ActionFilter] in cui è possibile eseguire l'override dello OnActionExecuting che verrà chiamato prima che venga richiamata l'azione del controller. Questa tecnica ti consente anche una migliore separazione delle preoccupazioni.

7

ASP.Net MVC corre ancora attraverso il HttpApplication gasdotto, in modo da poter ancora gestire qualsiasi degli eventi da BeginRequest fino al PreRequestHandlerExecute aggiungendo i gestori a Global.asax.