Ho una classe controller di base in cui sto eseguendo l'override del metodo Controller.OnExcezione del gestore per fornire una gestione degli errori generica per determinati tipi di controller che erediteranno da questa classe (questi sono i controller API che restituiscono i risultati JSON). Il metodo OnException non viene mai chiamato quando viene sollevata un'eccezione dal controller. Qualcuno vede cosa sto facendo male, o c'è un modo migliore per gestire questa situazione?ASP.NET MVC Controller.OnException non viene chiamato
Utilizzando MVC 1.0
fondo:
public class APIController : Controller
{
protected override void OnException(ExceptionContext filterContext)
{
//This is never called
filterContext.Result =
new JsonResult();
base.OnException(filterContext);
}
}
Ereditare Classe:
public class MyController : APIController
{
public AjaxResult ForcedException()
{
throw new SystemException();
}
}
"Il metodo OnException non viene mai chiamato quando viene sollevata un'eccezione dal controller" - lo hai verificato con il debugger? Non è chiaro dalla tua domanda. –
L'ho provato dal debugger e utilizzando le istruzioni del registro e eseguendolo all'esterno del debugger. Nessuno dei due sembra funzionare per me. –