È possibile rilevare le eccezioni nelle azioni del controller? C'è un modo migliore per farlo? In realtà sto recuperando le mie eccezioni nel controller e usando TempData per mostrare un messaggio all'utente, ma ho una strana sensazione riguardo questo approccio. Ho navigato in giro ma non ho trovato nulla che mi si addica.Gestione eccezioni ASP.NET MVC
risposta
È possibile utilizzare l'attributo HandleError
sulla classe controller per rilevare eventuali eccezioni non gestite e restituirà automaticamente la vista Error.aspx nella cartella Shared. Ci sono sovraccarichi di questo attributo in modo da avere solo usato per alcuni tipi di eccezione, ecc
Per ulteriori informazioni su questo approccio, controlla il post di ScottGu su di esso: http://weblogs.asp.net/scottgu/archive/2008/07/14/asp-net-mvc-preview-4-release-part-1.aspx
Questo è interessante, ma il In alternativa, posso reindirizzare alle viste standard ("Indice" per esempio) e visualizzare un messaggio personalizzato per l'eccezione concreta ... –
Le pagine Error.aspx sono legate alla classe HandleErrorInfo, che espone le proprietà dell'eccezione. Se stai inviando un messaggio di eccezione personalizzato, puoi renderlo visibile alla vista. Il libro di Steve Sanderson "Pro ASP.NET MVC Framework" illustra alcuni modi per farlo e anche come creare i propri filtri delle eccezioni. Consiglierei di prendere quel libro. – mkchandler
Forse estendere HandleError per consentire la definizione del TempData? Penso che indagherò su questo. Grazie ... –
Questo è vecchio ma volevo solo fornire il mio post come riferimento (** problemi con HandleError **) mentre passo - http://stackoverflow.com/questions/12183653/mvc-handleerror-filter-didnt-catch-an-exception –