asp.net mvc自定义异常过滤器强制返回完整视图,而不是局部

Kyl*_*yle 6 asp.net-mvc filter custom-exceptions

我有一个自定义异常过滤器,我通过向我的类添加[CustomExceptionFilter]属性来调用.它按照我的意愿工作,但是如果action方法返回一个局部视图(通过ajax请求),异常(基本上是一个重定向到一个未授权的页面),正在加载部分视图页.有没有办法可以强制它重新加载'父'网址?

以下是自定义异常过滤器的代码

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);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ziy*_*iya 2

这是您需要在浏览器上处理的事情。例如,尝试处理jQuery.ajax() 调用上的 error() (显然不返回重定向..)。