Je suis l'élaboration d'un MVC3 site web de base et je suis à la recherche d'une solution pour la gestion des erreurs et de Rendre des Vues personnalisées pour chaque type d'erreur. Alors, imaginez que j'ai une "Erreur" Contrôleur de où son action principale est "Index" (page d'erreur générique) et le contrôleur aura un couple plus d'actions pour les erreurs qui peuvent apparaître à l'utilisateur comme "Handle500" ou "HandleActionNotFound".
Donc, de toutes les erreurs qui peuvent se produire sur le site web peuvent être gérées par cette "Erreur" Contrôleur (exemples: "Contrôleur" ou "Action" n'est pas trouvée, 500, 404, dbException, etc).
Je suis à l'aide de fichier Sitemap pour définir le site web des chemins (et pas de route).
Cette question a déjà été répondu, c'est une réponse à Gweebz
Ma dernière applicaiton_error méthode est la suivante:
protected void Application_Error() {
//while my project is running in debug mode
if (HttpContext.Current.IsDebuggingEnabled && WebConfigurationManager.AppSettings["EnableCustomErrorPage"].Equals("false"))
{
Log.Logger.Error("unhandled exception: ", Server.GetLastError());
}
else
{
try
{
var exception = Server.GetLastError();
Log.Logger.Error("unhandled exception: ", exception);
Response.Clear();
Server.ClearError();
var routeData = new RouteData();
routeData.Values["controller"] = "Errors";
routeData.Values["action"] = "General";
routeData.Values["exception"] = exception;
IController errorsController = new ErrorsController();
var rc = new RequestContext(new HttpContextWrapper(Context), routeData);
errorsController.Execute(rc);
}
catch (Exception e)
{
//if Error controller failed for same reason, we will display static HTML error page
Log.Logger.Fatal("failed to display error page, fallback to HTML error: ", e);
Response.TransmitFile("~/error.html");
}
}
}