Перенаправление в HandleErrorAttribute не работает - PullRequest
0 голосов
/ 30 января 2019

Я хочу перенаправить пользователя в случае конкретного исключения.

для этого я написал собственный фильтр исключений, и он работает, то есть, если я ставлю точку останова, она проходит через нее должным образом, но я не могупереопределить нормальное поведение исключения и переместить пользователя на пользовательскую страницу.

Имитация исключения:

public ActionResult Index()
{
    //test exception throw 
    throw new ArgumentNullException();
    return View();
}

Перенаправление фильтра:

public class CustomExceptionHandlerAttribute : HandleErrorAttribute
{
    public override void OnException(ExceptionContext filterContext)
    {
        if (filterContext.Exception is ArgumentNullException)
            //breakpoint here work as expected
            filterContext.Result = new RedirectToRouteResult( 
                new RouteValueDictionary(new { controller = "Home", action = "About" })
            );
        else
            base.OnException(filterContext);
    }
}

Результатв браузере (также без отладки):

Ошибка сервера в приложении '/'.

Значение не может быть пустым или пустым.

...