Action filter è il modo di andare in questo caso:
filtro Action, che avvolge l'esecuzione metodo dell'azione. Questo filtro può eseguire un'ulteriore elaborazione, ad esempio fornendo dati aggiuntivi al metodo di azione , ispezionando il valore restituito o annullando l'esecuzione del metodo di azione .
Ecco un bel MSDN How To: How to: Create a Custom Action Filter
Nel tuo caso, devi avere qualcosa di simile:
public class RedirectFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (MyService.IsCat==false)
return RedirectToAnotherControllerAction();
}
}
Poi, si sarebbe applicare questo filtro a livello di controllo (applica a tutte le azioni di controllo)
[RedirectFilterAttribute]
public class MyController : Controller
{
// Will apply the filter to all actions inside this controller.
public ActionResult MyCatAction()
{
}
}
o per azione:
[RedirectFilterAttribute]
public ActionResult MyCatAction()
{
// Action logic
...
}
fonte
2013-03-28 16:09:30
Sconcertante numero di upvotes ... probabilmente mi manca qualcosa come risposta è una ricerca di distanza - risposta top su "filtro d'azione mvc controller" query ... –