У меня есть настраиваемый фильтр исключительных ситуаций, который я вызываю в силу добавления атрибута [CustomExceptionFilter] в мой класс. Он работает так, как мне бы хотелось, но если метод действия возвращает частичное представление (через запрос ajax), исключение (которое в основном является перенаправлением на неавторизованную страницу), загружает частичный вид с помощью этого стр. Есть ли способ заставить его перезагрузить «родительский» URL-адрес?asp.net mvc custom exception filter для принудительного возврата полного представления, а не частичного
Вот код для пользовательского исключения фильтра
public class CustomExceptionFilter : FilterAttribute, IExceptionFilter
{
public void OnException(ExceptionContext filterContext)
{
if (filterContext.Exception.GetType() == typeof(CustomSecurityException))
{
filterContext.ExceptionHandled = true;
RequestContext rc = new RequestContext(filterContext.HttpContext, filterContext.RouteData);
string url = RouteTable.Routes.GetVirtualPath(rc, new RouteValueDictionary(new { Controller = "NoAccess", action = "Index", message = filterContext.Exception.Message })).VirtualPath;
filterContext.HttpContext.Response.Redirect(url, true);
}
}
}
Это правильный ответ, потому что, когда есть ошибка ajax, ни пользовательское исключение, ни код контроллера не попадают. – stuartdotnet