2012-10-05 25 views

Respuesta

6

creo que la forma más adecuada de hacerlo en MVC es con filters
MSDN proporciona una buena descripción de ellos, y hay docenas de artículos y explanatins acerca de ellos en la red, tales como this one

EDITAR This muestra es aún mejor: proporciona un filtro de acción simple, que luego se registra en global.asax, y se ejecuta en cada solicitud, antes de que se ejecute la acción real en el controlador relevan. Tal concepto le permite acceder al objeto de solicitud y modificar lo que quiera antes de que se ejecute el controlador real.

1

Puede poner el código en el constructor del controlador. De esta manera:

public class FooController : Controller 
{ 
    public FooController() 
    { 
     doThings(); 
    } 
+0

De cada controlador? Quiero que se llame en cada carga de página a lo largo de mi aplicación – Curt

+0

¿Qué pasa si tengo 100 controladores? Voy a tener que agregar esto cada vez. Además, debería recordar agregar esto con cualquier controlador nuevo. No creo que esto sea muy escalable. – Curt

+0

Sí, tienes razón. Lo siento, no entendí que quería esto en cada vista de su aplicación. La respuesta del controlador base se ve bien. – David

9

se podría crear un controlador de base de clase

public class BaseController : Controller 
{ 

    public BaseController() 
    { 
     // your code here 
    } 
} 

y que cada nuevo controlador de los suyos impelement el controlador de base como

public class MyController: BaseController 

También he encontrado el BaseController muy útil para almacenar otras funciones que necesito mucho en otros controladores

Cuestiones relacionadas