Я хочу перенаправить пользователя в случае конкретного исключения.
для этого я написал собственный фильтр исключений, и он работает, то есть, если я ставлю точку останова, она проходит через нее должным образом, но я не могупереопределить нормальное поведение исключения и переместить пользователя на пользовательскую страницу.
Имитация исключения:
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);
}
}
Результатв браузере (также без отладки):
Ошибка сервера в приложении '/'.
Значение не может быть пустым или пустым.