Tôi có một bộ lọc ngoại lệ tùy chỉnh mà tôi đang gọi bởi đức hạnh của thêm một [CustomExceptionFilter] thuộc tính cho lớp học của tôi. Nó hoạt động như tôi muốn nó, tuy nhiên nếu phương thức hành động trả về một phần xem (thông qua một yêu cầu ajax), ngoại lệ (về cơ bản là một chuyển hướng đến một trang không được ủy quyền), đang tải chế độ xem một phần với trang. Có cách nào tôi có thể buộc nó tải lại url 'cha mẹ' không?asp.net mvc tùy chỉnh ngoại lệ bộ lọc để buộc một sự trở lại của xem đầy đủ, không phải một phần
Đây là mã cho các ngoại lệ tùy chỉnh lọc
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);
}
}
}
Đây là câu trả lời đúng vì khi có lỗi ajax không phải ngoại lệ tùy chỉnh hoặc mã bộ điều khiển được nhấn. – stuartdotnet