Eu tenho alguns códigos básicos para determinar erros em meu aplicativo MVC. Actualmente no meu projeto eu tenho um controlador chamado Errorcom métodos de ação HTTPError404(), HTTPError500()e General(). Todos eles aceitam um parâmetro de string error. Usando ou modificando o código abaixo. Qual é a melhor / adequada maneira de passar os dados para o controlador de erro para processamento? Gostaria de ter uma solução o mais robusta possível.
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?
}
}