Tengo un código básico para determinar errores en mi aplicación MVC. Actualmente en mi proyecto tengo un controlador llamado Errorcon métodos de acción HTTPError404(), HTTPError500()y General(). Todos aceptan un parámetro de cadena error. Usando o modificando el código a continuación. ¿Cuál es la forma mejor / adecuada de pasar los datos al controlador de errores para su procesamiento? Me gustaría tener una solución lo más sólida posible.
protected void Application_Error(object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
Response.Clear();
HttpException httpException = exception as HttpException;
if (httpException != null)
{
RouteData routeData = new RouteData();
routeData.Values.Add("controller", "Error");
switch (httpException.GetHttpCode())
{
case 404:
// page not found
routeData.Values.Add("action", "HttpError404");
break;
case 500:
// server error
routeData.Values.Add("action", "HttpError500");
break;
default:
routeData.Values.Add("action", "General");
break;
}
routeData.Values.Add("error", exception);
// clear error on server
Server.ClearError();
// at this point how to properly pass route data to error controller?
}
}