Sì, è possibile farlo ma non è il modo in cui funziona fuori dalla scatola. Ho fatto la seguente:
- Creare una classe controller di base e avere tutti i controller di ereditare da essa
- Crea un attributo di filtro azione e lo hanno ereditare da FilterAttribute e IActionFilter
- Arreda la tua classe di controller di base con il nuovo attributo di filtro azione
Ecco un esempio di attributo di filtro azione:
public class SetCultureAttribute : FilterAttribute, IActionFilter
{
#region IActionFilter implementation
public void OnActionExecuted(ActionExecutedContext filterContext)
{
//logic goes here
}
public void OnActionExecuting(ActionExecutingContext filterContext)
{
//or logic goes here
}
#endregion IActionFilter implementation
}
Ecco un esempio della classe base del controllore con questo attributo:
[SetCulture]
public class ControllerBase : Controller
{
...
}
Utilizzando questo metodo finché le vostre classi controller eredita dalla ControllerBase poi il filtro azione setCulture sarebbe sempre essere eseguito. Ho un campione completo e post su questo on my blog se desideri maggiori dettagli.
Spero che questo aiuti!
fonte
2009-03-16 06:53:55
Questo influisce solo ActionResults? Oppure influenza anche altri tipi di risultati? JsonResult, FileResult, ecc.? –