Обработка пользовательских ошибок ASP.NET MVC Application_Error Global.asax?

У меня есть базовый код для определения ошибок в моем приложении MVC. В настоящее время в моем проекте у меня есть контроллер под названиемError с методами действияHTTPError404(), HTTPError500(), а такжеGeneral(), Все они принимают строковый параметрerror, Использование или изменение кода ниже. Каков наилучший / правильный способ передачи данных в контроллер ошибок для обработки? Я хотел бы иметь надежное решение, насколько это возможно.

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?
    }
}

Ответы на вопрос(10)

Ваш ответ на вопрос