Как я могу поймать исключение MVC3 и не вернуть пустое представление? - PullRequest
0 голосов
/ 12 октября 2011

Я хочу обработать исключение в методе переопределения OnException, как показано ниже: если я установлю filterContext.ExceptionHandled = true; обратный вид покажет пустой вид. я не хочу, чтобы он перенаправлял на страницу 500. так как я могу это сделать?

protected override void OnException(ExceptionContext filterContext)
{
    base.OnException(filterContext);

    var exception = new HttpException(null, filterContext.Exception);
    if (exception.GetHttpCode() == (int)HttpStatusCode.InternalServerError)
    {
        if (WebConstants.systemHandleExceptionList.Contains(filterContext.Exception.GetType()))
        {
            //process the error
            SaveErrorMessage(filterContext.Exception.GetType().Name);

            filterContext.ExceptionHandled = true;
        }
        else
        {
            //record the unhandle message to log
            errorlog.Error("", filterContext.Exception);
        }
    }
}

1 Ответ

0 голосов
/ 12 октября 2011

вы можете перенаправить его на другую страницу сразу после установки флага в значение true.Смотрите пример ниже

RouteValueDictionary errorRouteValues = new RouteValueDictionary( new { controller = "Error", action = "Action" } );

filterContext.Result = new ActionRedirectResult( errorRouteValues );
filterContext.Cancel = true;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...